Цель проекта
Для открытия нового заведения общественного питания необходимо определить:
План исследования
Предоставлены данные Файл moscow_places.csv:
pip install folium
Requirement already satisfied: folium in c:\users\jedu\anaconda3\lib\site-packages (0.14.0) Requirement already satisfied: jinja2>=2.9 in c:\users\jedu\anaconda3\lib\site-packages (from folium) (2.11.3) Requirement already satisfied: requests in c:\users\jedu\anaconda3\lib\site-packages (from folium) (2.28.1) Requirement already satisfied: numpy in c:\users\jedu\anaconda3\lib\site-packages (from folium) (1.21.5) Requirement already satisfied: branca>=0.6.0 in c:\users\jedu\anaconda3\lib\site-packages (from folium) (0.6.0) Requirement already satisfied: MarkupSafe>=0.23 in c:\users\jedu\anaconda3\lib\site-packages (from jinja2>=2.9->folium) (2.0.1) Requirement already satisfied: charset-normalizer<3,>=2 in c:\users\jedu\anaconda3\lib\site-packages (from requests->folium) (2.0.4) Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\jedu\anaconda3\lib\site-packages (from requests->folium) (1.26.11) Requirement already satisfied: certifi>=2017.4.17 in c:\users\jedu\anaconda3\lib\site-packages (from requests->folium) (2022.9.14) Requirement already satisfied: idna<4,>=2.5 in c:\users\jedu\anaconda3\lib\site-packages (from requests->folium) (3.3) Note: you may need to restart the kernel to use updated packages.
import pandas as pd
from matplotlib import pyplot as plt
import plotly.express as px
import seaborn as sns
from plotly import graph_objects as go
import json
from folium import Map, Choropleth
from folium import Marker, Map
from folium.plugins import MarkerCluster
import numpy as np
try:
df = pd.read_csv('moscow_places.csv')
except:
df = pd.read_csv('https://code.s3.yandex.net/datasets/moscow_places.csv')
def pred(df):
'''функция предобработки данных'''
print(df.head())
print('='*50)
print(df.info())
print('='*50)
print('ПРОПУСКИ')
print(df.isna().sum())
print('='*50)
print('ПОЛНЫЕ ДУБЛИКАТЫ')
print(df.duplicated().sum())
print('='*50)
print(df.describe().round(2))
pred(df)
name category address \
0 WoWфли кафе Москва, улица Дыбенко, 7/1
1 Четыре комнаты ресторан Москва, улица Дыбенко, 36, корп. 1
2 Хазри кафе Москва, Клязьминская улица, 15
3 Dormouse Coffee Shop кофейня Москва, улица Маршала Федоренко, 12
4 Иль Марко пиццерия Москва, Правобережная улица, 1Б
district \
0 Северный административный округ
1 Северный административный округ
2 Северный административный округ
3 Северный административный округ
4 Северный административный округ
hours lat lng \
0 ежедневно, 10:00–22:00 55.878494 37.478860
1 ежедневно, 10:00–22:00 55.875801 37.484479
2 пн-чт 11:00–02:00; пт,сб 11:00–05:00; вс 11:00... 55.889146 37.525901
3 ежедневно, 09:00–22:00 55.881608 37.488860
4 ежедневно, 10:00–22:00 55.881166 37.449357
rating price avg_bill middle_avg_bill \
0 5.0 NaN NaN NaN
1 4.5 выше среднего Средний счёт:1500–1600 ₽ 1550.0
2 4.6 средние Средний счёт:от 1000 ₽ 1000.0
3 5.0 NaN Цена чашки капучино:155–185 ₽ NaN
4 5.0 средние Средний счёт:400–600 ₽ 500.0
middle_coffee_cup chain seats
0 NaN 0 NaN
1 NaN 0 4.0
2 NaN 0 45.0
3 170.0 0 NaN
4 NaN 1 148.0
==================================================
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8406 entries, 0 to 8405
Data columns (total 14 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 name 8406 non-null object
1 category 8406 non-null object
2 address 8406 non-null object
3 district 8406 non-null object
4 hours 7870 non-null object
5 lat 8406 non-null float64
6 lng 8406 non-null float64
7 rating 8406 non-null float64
8 price 3315 non-null object
9 avg_bill 3816 non-null object
10 middle_avg_bill 3149 non-null float64
11 middle_coffee_cup 535 non-null float64
12 chain 8406 non-null int64
13 seats 4795 non-null float64
dtypes: float64(6), int64(1), object(7)
memory usage: 919.5+ KB
None
==================================================
ПРОПУСКИ
name 0
category 0
address 0
district 0
hours 536
lat 0
lng 0
rating 0
price 5091
avg_bill 4590
middle_avg_bill 5257
middle_coffee_cup 7871
chain 0
seats 3611
dtype: int64
==================================================
ПОЛНЫЕ ДУБЛИКАТЫ
0
==================================================
lat lng rating middle_avg_bill middle_coffee_cup chain \
count 8406.00 8406.00 8406.00 3149.00 535.00 8406.00
mean 55.75 37.61 4.23 958.05 174.72 0.38
std 0.07 0.10 0.47 1009.73 88.95 0.49
min 55.57 37.36 1.00 0.00 60.00 0.00
25% 55.71 37.54 4.10 375.00 124.50 0.00
50% 55.75 37.61 4.30 750.00 169.00 0.00
75% 55.80 37.66 4.40 1250.00 225.00 1.00
max 55.93 37.87 5.00 35000.00 1568.00 1.00
seats
count 4795.00
mean 108.42
std 122.83
min 0.00
25% 40.00
50% 75.00
75% 140.00
max 1288.00
В исходных данных описаны 8406 заведений, полные дубликаты отсутствуют.
Данные в нужных форматах.
Присутствует большое количество пропусков в данных:
Причина отсутствия данных: скорее всего они не заполнены составителями профилей либо не оценены посетителями.
По указанным данным:
Максимальные значения среднего чека и стоимости 1 чашки кофе выглядят достаточно высокими: либо это ошибка, либо элитные заведения.
Минимальный средний чек 0 - явно ошибочный.
На неизвестные строковые значения: режим работы, рейтинг цен и средний чек поставим заглушку в виде "-".
#замена пропусков в режиме работы
df['hours'] = df['hours'].fillna('-')
df['price'] = df['price'].fillna('-')
df['avg_bill'] = df['avg_bill'].fillna('-')
Чтобы избежать дублей по названию типа "Крошка Картошка" и "Крошка картошка", приведём значения к нижнему регистру.
#приведение всех названий к нижнему регистру
df['name'] = df['name'].str.lower()
#проверка неявных дубликатов
print('Дубликатов по адресам и названиям:', df[['name', 'address']].duplicated().sum())
print('Дубликатов по координатам и названиям: ', df[['lat', 'lng', 'name']].duplicated().sum())
Дубликатов по адресам и названиям: 3 Дубликатов по координатам и названиям: 1
df.loc[df[['name', 'address']].duplicated(keep=False)]
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1430 | more poke | ресторан | Москва, Волоколамское шоссе, 11, стр. 2 | Северный административный округ | ежедневно, 09:00–21:00 | 55.806307 | 37.497566 | 4.2 | - | - | NaN | NaN | 0 | 188.0 |
| 1511 | more poke | ресторан | Москва, Волоколамское шоссе, 11, стр. 2 | Северный административный округ | пн-чт 09:00–18:00; пт,сб 09:00–21:00; вс 09:00... | 55.806307 | 37.497566 | 4.2 | - | - | NaN | NaN | 1 | 188.0 |
| 2211 | раковарня клешни и хвосты | ресторан | Москва, проспект Мира, 118 | Северо-Восточный административный округ | ежедневно, 12:00–00:00 | 55.810553 | 37.638161 | 4.4 | - | - | NaN | NaN | 0 | 150.0 |
| 2420 | раковарня клешни и хвосты | бар,паб | Москва, проспект Мира, 118 | Северо-Восточный административный округ | пн-чт 12:00–00:00; пт,сб 12:00–01:00; вс 12:00... | 55.810677 | 37.638379 | 4.4 | - | - | NaN | NaN | 1 | 150.0 |
| 3091 | хлеб да выпечка | булочная | Москва, Ярцевская улица, 19 | Западный административный округ | ежедневно, 09:00–22:00 | 55.738886 | 37.411648 | 4.1 | - | - | NaN | NaN | 1 | 276.0 |
| 3109 | хлеб да выпечка | кафе | Москва, Ярцевская улица, 19 | Западный административный округ | - | 55.738449 | 37.410937 | 4.1 | - | - | NaN | NaN | 0 | 276.0 |
Дубликаты отличесются показателем "сеть". Чтобы узнать, какой оставить, проверим количество заведений с этими названиями
df.loc[df[['lat', 'lng', 'name']].duplicated(keep=False)]
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1430 | more poke | ресторан | Москва, Волоколамское шоссе, 11, стр. 2 | Северный административный округ | ежедневно, 09:00–21:00 | 55.806307 | 37.497566 | 4.2 | - | - | NaN | NaN | 0 | 188.0 |
| 1511 | more poke | ресторан | Москва, Волоколамское шоссе, 11, стр. 2 | Северный административный округ | пн-чт 09:00–18:00; пт,сб 09:00–21:00; вс 09:00... | 55.806307 | 37.497566 | 4.2 | - | - | NaN | NaN | 1 | 188.0 |
Дубль по названию и координатам повторяет дубль по названию и адресу.
dup_names = ['more poke', 'хлеб да выпечка', 'раковарня клешни и хвосты']
df.query('name in @dup_names').sort_values('name')
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1430 | more poke | ресторан | Москва, Волоколамское шоссе, 11, стр. 2 | Северный административный округ | ежедневно, 09:00–21:00 | 55.806307 | 37.497566 | 4.2 | - | - | NaN | NaN | 0 | 188.0 |
| 1511 | more poke | ресторан | Москва, Волоколамское шоссе, 11, стр. 2 | Северный административный округ | пн-чт 09:00–18:00; пт,сб 09:00–21:00; вс 09:00... | 55.806307 | 37.497566 | 4.2 | - | - | NaN | NaN | 1 | 188.0 |
| 6088 | more poke | ресторан | Москва, Духовской переулок, 19 | Южный административный округ | ежедневно, 10:00–22:00 | 55.704177 | 37.612889 | 4.4 | - | - | NaN | NaN | 1 | NaN |
| 2211 | раковарня клешни и хвосты | ресторан | Москва, проспект Мира, 118 | Северо-Восточный административный округ | ежедневно, 12:00–00:00 | 55.810553 | 37.638161 | 4.4 | - | - | NaN | NaN | 0 | 150.0 |
| 2420 | раковарня клешни и хвосты | бар,паб | Москва, проспект Мира, 118 | Северо-Восточный административный округ | пн-чт 12:00–00:00; пт,сб 12:00–01:00; вс 12:00... | 55.810677 | 37.638379 | 4.4 | - | - | NaN | NaN | 1 | 150.0 |
| 7270 | раковарня клешни и хвосты | бар,паб | Москва, Братиславская улица, 12 | Юго-Восточный административный округ | пн-чт 12:00–00:00; пт,сб 12:00–01:00; вс 12:00... | 55.659744 | 37.752984 | 4.9 | средние | Цена бокала пива:150–250 ₽ | NaN | NaN | 1 | 40.0 |
| 3091 | хлеб да выпечка | булочная | Москва, Ярцевская улица, 19 | Западный административный округ | ежедневно, 09:00–22:00 | 55.738886 | 37.411648 | 4.1 | - | - | NaN | NaN | 1 | 276.0 |
| 3109 | хлеб да выпечка | кафе | Москва, Ярцевская улица, 19 | Западный административный округ | - | 55.738449 | 37.410937 | 4.1 | - | - | NaN | NaN | 0 | 276.0 |
| 7937 | хлеб да выпечка | кофейня | Москва, Каширское шоссе, 61Г | Южный административный округ | ежедневно, 09:00–22:00 | 55.621379 | 37.714108 | 4.5 | - | - | NaN | NaN | 1 | NaN |
Все заведения - сетевые. Принято решение удалить "несетевые" дубликаты.
#удаление дубликатов
df = df.sort_values(['name', 'chain']).drop_duplicates(subset=['name', 'address'], keep='last').reset_index(drop=True)
df_full = len(df) #создадим переменную длины исходных данных без дубликатов для последующего контроля очистки данных.
df_full
8403
#уникальных несетевых названий
print(df.loc[df['chain'] == 0, 'name'].value_counts().head(30))
print()
print('Несетевых заведений с уникальным названием:' , (df.loc[df['chain'] == 0, 'name'].value_counts()==1).sum())
кафе 189 шаурма 43 ресторан 34 столовая 28 бистро 12 кофейня 12 кафе-столовая 9 буфет 8 трапезная 7 шашлычная 6 поминальные обеды 5 пиццерия 3 блины 3 espresso bar 2 донер & гриль 2 на углях 2 hellopapaya 2 центр плова 2 авлабар 2 ням-ням 2 бишкек сити 2 il pizzaiolo 2 кафе шашлык 2 vabene 2 домик в саду 2 ku: рамен изакая бар 2 вкусвилл, кафе 2 di villaggio 2 pasta cup & pizza 2 важная персона 2 Name: name, dtype: int64 Несетевых заведений с уникальным названием: 4735
Анализ несетевых названий показал большое количество "no name" заведений:
Являются они сетевыми или нет в реальности - непонятно, т.к. нет информации о юр. лице или каком-то ином общем позиционировании заведений.
pd.set_option('display.max_rows', None)
temp5 = df.loc[df['chain'] == 0].groupby('name').agg({'name':'count'})
temp6 = temp5.loc[temp5['name']==2].index.to_list()
df.query('name.isin(@temp6)==True')[['name', 'category', 'address']]
| name | category | address | |
|---|---|---|---|
| 158 | bb grill | бар,паб | Москва, Семёновская площадь, 1 |
| 159 | bb grill | бар,паб | Москва, Автозаводская улица, 18 |
| 367 | carrots and beans | кофейня | Москва, Ярцевская улица, 31 |
| 368 | carrots and beans | кофейня | Москва, Малая Грузинская улица, 38 |
| 714 | di villaggio | пиццерия | Москва, Профсоюзная улица, 45 |
| 715 | di villaggio | кафе | Москва, парк Тюфелева роща |
| 815 | espresso bar | кафе | Москва, Звенигородское шоссе, 3Ас1 |
| 816 | espresso bar | кофейня | Москва, Южнопортовая улица, 18 |
| 1052 | han cook | ресторан | Москва, Никольская улица, 10 |
| 1053 | han cook | быстрое питание | Москва, улица Вавилова, 64/1с1 |
| 1070 | hellopapaya | кофейня | Москва, Ленинградский проспект, 36с10 |
| 1071 | hellopapaya | кофейня | Москва, Поклонная улица, 3, корп. 4 |
| 1100 | i like wine | бар,паб | Москва, улица Покровка, 16 |
| 1101 | i like wine | кафе | Москва, Севастопольский проспект, 49 |
| 1127 | il pizzaiolo | пиццерия | Москва, улица Арбат, 31 |
| 1128 | il pizzaiolo | ресторан | Москва, Никольская улица, 11-13с1 |
| 1148 | istanbul kebab | быстрое питание | Москва, Ленинградский проспект, 62, стр. 26 |
| 1149 | istanbul kebab | ресторан | Москва, улица Тимура Фрунзе, 11, стр. 13 |
| 1242 | ku: рамен изакая бар | бар,паб | Москва, Большая Грузинская улица, 69 |
| 1243 | ku: рамен изакая бар | бар,паб | Москва, Пресненская набережная, 10с2 |
| 1683 | pasta cup & pizza | пиццерия | Москва, Ленинградский проспект, 70 |
| 1684 | pasta cup & pizza | пиццерия | Москва, проспект Вернадского, 6 |
| 1766 | pinzeria by bontempi | пиццерия | Москва, Усачёва улица, 26 |
| 1767 | pinzeria by bontempi | пиццерия | Москва, Шлюзовая набережная, 4 |
| 1832 | pomodoro royal | пиццерия | Москва, Байкальская улица, 29 |
| 1833 | pomodoro royal | пиццерия | Москва, Челябинская улица, 15 |
| 2281 | vabene | пиццерия | Москва, улица Гризодубовой, 4, корп. 4 |
| 2282 | vabene | пиццерия | Москва, улица Пресненский Вал, 14к4 |
| 2488 | авлабар | бар,паб | Москва, Большой Саввинский переулок, 12, стр. 2 |
| 2489 | авлабар | бар,паб | Москва, Велозаводская улица, 6А |
| 2847 | бишкек сити | кафе | Москва, улица Лётчика Бабушкина, 30, стр. 1 |
| 2848 | бишкек сити | ресторан | Москва, улица Обручева, 34/63с1 |
| 3058 | важная персона | столовая | Москва, Вятская улица, 35с4, подъезд 4 |
| 3059 | важная персона | столовая | Москва, Большая Новодмитровская улица, 23 |
| 3188 | вкусвилл, кафе | кофейня | Москва, Волгоградский проспект, 3-5с2 |
| 3189 | вкусвилл, кафе | кафе | Москва, Новочерёмушкинская улица, 66к1 |
| 3295 | вьет лотос | быстрое питание | Москва, Каширское шоссе, 14 |
| 3296 | вьет лотос | быстрое питание | Москва, Поречная улица, 10 |
| 3357 | гастроферма | ресторан | Москва, Нижняя Красносельская улица, 35, стр. 59 |
| 3358 | гастроферма | быстрое питание | Москва, Бакунинская улица, 69, стр. 1 |
| 3426 | греки здесь | кафе | Москва, проспект Мира, 119, стр. 47 |
| 3427 | греки здесь | ресторан | Москва, улица Авиаконструктора Миля, 3А |
| 3491 | гюмри хауз | булочная | Москва, Перовская улица, 6, корп. 1 |
| 3492 | гюмри хауз | пиццерия | Москва, Ташкентская улица, 28, стр. 8 |
| 3705 | домик в саду | пиццерия | Москва, проспект Мира, 119, стр. 512 |
| 3706 | домик в саду | пиццерия | Москва, улица Крымский Вал, 9с74 |
| 3794 | донер & гриль | быстрое питание | Москва, улица Борисовские Пруды, 8, корп. 3 |
| 3795 | донер & гриль | быстрое питание | Москва, Люсиновская улица, 48-50к10 |
| 3799 | донер бистро | быстрое питание | Москва, 15-я Парковая улица, 18, корп. 1 |
| 3800 | донер бистро | быстрое питание | Москва, Кировоградская улица, вл15А |
| 3977 | здоровое питание | столовая | Москва, 1-й Силикатный проезд, 13 |
| 3978 | здоровое питание | кафе | Москва, Кутузовский проспект, 36, стр. 38 |
| 4393 | кафе для поминок | кафе | Москва, улица Верхняя Масловка, 10, стр. 4 |
| 4394 | кафе для поминок | кафе | Москва, улица Шаболовка, 58 |
| 4470 | кафе шашлык | кафе | Москва, улица Вавилова, 5 |
| 4471 | кафе шашлык | кафе | Москва, Алма-Атинская улица, 1 |
| 4501 | кафе-кулинария | кафе | Москва, улица Михайлова, 31А |
| 4502 | кафе-кулинария | кафе | Москва, Новочерёмушкинская улица, 69 |
| 4729 | кофе стоп | кофейня | Москва, Монтажная улица, 8 |
| 4730 | кофе стоп | кофейня | Москва, Бойцовая улица, 27, корп. 5 |
| 4752 | кофеin | кофейня | Москва, улица Верхняя Масловка, 11 |
| 4753 | кофеin | кафе | Москва, Минская улица, 2Ж |
| 5226 | ма ми | кафе | Москва, Вятская улица, 27, стр. 2 |
| 5227 | ма ми | кафе | Москва, Шелепихинская набережная, корп. 2ЗД1 |
| 5340 | между булок | кафе | Москва, Бакунинская улица, 69, стр. 1 |
| 5341 | между булок | бар,паб | Москва, Балаклавский проспект, 5А, стр. 11 |
| 5601 | на углях | ресторан | Москва, Ярцевская улица, 22А, корп. 2 |
| 5602 | на углях | кафе | Москва, 5-я Кабельная улица, 8 |
| 5656 | новатор кофе | кофейня | Москва, Ленинский проспект, 77, корп. 1 |
| 5657 | новатор кофе | кофейня | Москва, Ленинский проспект, 85 |
| 5659 | новая столовая | столовая | Москва, улица Касаткина, 3, стр. 2 |
| 5660 | новая столовая | столовая | Москва, проспект Маршала Жукова, 2 |
| 5678 | нэм нэм | кафе | Москва, Планерная улица, 7 |
| 5679 | нэм нэм | кафе | Москва, Угрешская улица, 2, стр. 25 |
| 5681 | ням-ням | столовая | Москва, Авиамоторная улица, 55, корп. 5 |
| 5682 | ням-ням | булочная | Москва, улица Семёновский Вал, 12 |
| 5827 | папан | кафе | Москва, Петровско-Разумовский проезд, 24, корп. 4 |
| 5828 | папан | булочная | Москва, Новокосинская улица, 47 |
| 6115 | практика кофе | кофейня | Москва, Ломоносовский проспект, 29к1с2 |
| 6116 | практика кофе | кофейня | Москва, Чонгарский бульвар, 26А, корп. 1 |
| 6543 | семейная пекарня | булочная | Москва, улица Шверника, 6, стр. 1 |
| 6544 | семейная пекарня | булочная | Москва, Нахимовский проспект, 33/2 |
| 6668 | советские времена | бар,паб | Москва, Верхняя Красносельская улица, 2/1с4 |
| 6669 | советские времена | быстрое питание | Москва, улица Покровка, 50/2с1 |
| 7053 | токио рамен | ресторан | Москва, Семёновская площадь, 1 |
| 7054 | токио рамен | быстрое питание | Москва, Варшавское шоссе, 140 |
| 7371 | хинкали point | ресторан | Москва, Лесная улица, 20с1 |
| 7372 | хинкали point | кафе | Москва, улица Забелина, 1 |
| 7509 | хлеб насущный экспресс | булочная | Москва, Комсомольская площадь, 3 |
| 7510 | хлеб насущный экспресс | булочная | Москва, Летниковская улица, 2, стр. 2 |
| 7546 | хочу хычин | ресторан | Москва, Стремянный переулок, 38 |
| 7547 | хочу хычин | ресторан | Москва, улица Ленинская Слобода, 26 |
| 7564 | центр плова | кафе | Москва, улица Стромынка, 23/16 |
| 7565 | центр плова | быстрое питание | Москва, Нагатинская улица, 16 |
| 7788 | чайхона ош сити | кафе | Москва, 15-я Парковая улица, 27 |
| 7789 | чайхона ош сити | ресторан | Москва, Братиславская улица, 27к1 |
| 7822 | чебуречная | пиццерия | Москва, 2-я Брестская улица, 41с1 |
| 7823 | чебуречная | быстрое питание | Москва, Профсоюзная улица, 56 |
| 7871 | чудо печка | кафе | Москва, бульвар Академика Ландау, 1 |
| 7872 | чудо печка | кафе | Москва, Шоссейная улица, 66, корп. 2 |
| 7873 | чудо тандыр | булочная | Москва, улица Фабрициуса, 22, корп. 1 |
| 7874 | чудо тандыр | кафе | Москва, улица Академика Опарина, 4, корп. 1 |
| 7999 | шашлык на углях | ресторан | Москва, улица Барклая, 8 |
| 8000 | шашлык на углях | кафе | Москва, Волгоградский проспект, 32, корп. 2 |
Среди заведений с относительно уникальным названием и имеющим одного "двойника" не выявлено какой-то системы. Все пары заведений находятся на разных адересах, некоторые имеют разный тип (пиццерия и кафе). Предположительно это могут быть: 2 заведения разного направления под одним брендом, переехавшие заведения(одно из них закрыто).
Нет оснований считать такие заведения сетевыми.
#проверка сетевых заведений, отмеченных как несетевые
temp10 = df.groupby('name')['chain'].mean().reset_index().query('(chain > 0.5) & (chain < 1)')
temp10
| name | chain | |
|---|---|---|
| 51 | abc coffee roasters | 0.800000 |
| 246 | burger club | 0.833333 |
| 376 | coffee point | 0.666667 |
| 598 | flip | 0.666667 |
| 856 | korean chick | 0.833333 |
| 1106 | noba coffee | 0.800000 |
| 1116 | nova bubble tea | 0.666667 |
| 1137 | one price coffee | 0.986111 |
| 1139 | one&double | 0.800000 |
| 1197 | pho street | 0.750000 |
| 1252 | poke house | 0.666667 |
| 1289 | raw to go | 0.666667 |
| 1354 | sedelice | 0.666667 |
| 1414 | sova coffee | 0.666667 |
| 1430 | star hit cafe | 0.857143 |
| 1648 | wave california poke | 0.666667 |
| 1871 | ача-чача | 0.750000 |
| 2389 | гриль хаус | 0.666667 |
| 2532 | домино'с пицца | 0.987013 |
| 2608 | ели сацебели | 0.666667 |
| 3414 | ля фантази | 0.833333 |
| 3628 | мск lounge | 0.933333 |
| 3959 | пирог хауз | 0.666667 |
| 4142 | рамен-клаб | 0.800000 |
| 4330 | рэдимэйд | 0.666667 |
| 4540 | старый город | 0.666667 |
| 4898 | франклинс бургер | 0.888889 |
| 4941 | халва, сеть почтоматов | 0.750000 |
| 5136 | чайхана бишкек сити | 0.666667 |
| 5330 | шаурма в пите | 0.750000 |
| 5364 | шашлык хаус | 0.666667 |
| 5386 | шашлычок | 0.750000 |
Для названий, среднее значение "chain" > 0.5 - большая часть заведений отмечена как сетевые. Принято решение внести изменения в признак сети.
#замена признака сети
df.loc[df['name'].isin(temp10['name'].to_list()) == True, 'chain'] = 1
#уникальных сетей
print(df.loc[df['chain'] == 1, 'name'].value_counts())
print()
print('"Сетей" из одного заведения:' , (df.loc[df['chain'] == 1, 'name'].value_counts()==1).sum())
print('Сетей:' , (df.loc[df['chain'] == 1, 'name'].value_counts()>1).sum())
print('Сетевых заведений: ', df.loc[df['chain']==1, 'name'].count() - (df.loc[df['chain'] == 1, 'name'].value_counts()==1).sum())
шоколадница 120 домино'с пицца 77 додо пицца 74 one price coffee 72 яндекс лавка 69 cofix 65 prime 50 хинкальная 44 кофепорт 42 кулинарная лавка братьев караваевых 39 теремок 38 чайхана 37 cofefest 32 буханка 32 му-му 27 drive café 24 кофемания 23 крошка картошка 22 андерсон 22 cinnabon 20 скалка 20 french bakery 20 хлеб насущный 19 тануки 19 штолле 19 арамье 18 vasilchukí chaihona №1 17 донер кебаб 16 osteria mario 16 wild bean cafe 16 сушистор 16 мск lounge 15 моремания 15 кафетерий 15 pizza express 24 14 вареничная № 1 14 бургер кинг 14 правда кофе 14 алло! пицца 13 brasserie lambic 13 pizza hut 12 джонджоли 12 халяль 10 кафе-бар 10 франклинс бургер 9 даблби 9 волконский 9 самарканд 9 стейк & бургер 9 phobo 9 krispy kreme 9 bổ 9 лепим и варим 8 udcкафе 8 пекарня 8 kuzina 8 грузинская кухня 8 грабли 8 академия 8 брусника 8 coffeekaldi's 8 чайхона 8 мимино 7 9 bar coffee 7 гамбринус 7 кофе 7 star hit cafe 7 хачапури 7 сити пицца 7 il патио 7 папа джонс 7 батони 7 вкус востока 6 тандыр 6 kitchen 6 korean chick 6 zамания 6 paul 6 дружба 6 пан запекан 6 донер 6 сыроварня 6 burger club 6 пицца паоло 6 эль кафе 6 wild bean 6 gagawa 6 булкер 6 кулинариум 6 вьеткафе 6 чайхона айва 6 take and wake 6 чайхана халяль 6 кондитерская-кулинария брусника 6 кулинария 6 кофе с собой 6 ля фантази 6 джаганнат 5 швили 5 плов центр 5 chicko 5 хинкали-gали! 5 abc coffee roasters 5 одесса-мама 5 noba coffee 5 нияма 5 мясо&рыба 5 one&double 5 татнефть кафе 5 pho city 5 the wild bean cafe 5 чайхона №1 5 восточная кухня 5 трапеzа 5 восток 5 рамен-клаб 5 pho viet 5 menza 5 встреча 5 hatimaki 5 корчма тарас бульба 5 чайхана самарканд 5 кофе хауз 5 базилик 4 лаки сувлаки 4 french bakery sedelice 4 вкус дня 4 bodrero 4 пян-се 4 я люблю суши 4 маковка 4 монастырская трапеза 4 чайхана баракат 4 виктория 4 ача-чача 4 айва 4 гурманика 4 магбургер 4 гудман 4 гастро бистро шаверма-братуха 4 выпечка 4 чайхона № 1 4 мое кафе 4 сеть поминальных залов 4 bfl’s 4 шаверма 4 генацвале 4 coffee moose 4 чайхана халва 4 ресторан мацони 4 колбасофф 4 кофетун-сушитун 4 soul in the bowl 4 skuratov, coffee roasters 4 pho street 4 империя 4 шашлычок 4 ngon 4 шаурма в пите 4 как дома 4 в парке вкуснее 4 dimsum & co 4 coffee and the city 4 за обе щёки 4 хинкали - gали! 4 пончики! выпекаем на месте 4 японская кухня 4 пельменная 4 пекарня буханка 4 халва, сеть почтоматов 4 чайхана 24 4 кафе бар 4 карло 4 чайная 4 буше 4 7 сэндвичей 4 coffee bean 4 прогресс 4 nicepricecafe 4 вояж 3 сакура 3 маяк 3 свежая выпечка 3 вай мэ! 3 свежъ 3 быстрое питание 3 сам пришёл 3 вкус индии 3 ванильное небо 3 бранч 3 кулинариум - кулинария, пироги, салаты 3 булошная 3 находка 3 булка 3 ла гатта 3 меркато 3 воккер 3 веранда 3 мельница 3 кофе & moloko 3 рэдимэйд 3 ламаджо 3 пиццаменто 3 пирог хауз 3 пипони 3 калина 3 кампус 3 10 идеальных пицц 3 кофе твой друг 3 натахтари 3 мята lounge 3 ош 3 плов 3 очаг 3 кахури 3 квартира 44 3 остров 3 китайская кухня 3 ором 3 омореморе 3 кондитерская олега ильина 3 оливка 3 легенда 3 пончики 3 рыбная мануфактура № 1 3 пять звёзд 3 голубка 3 оазис 3 гриль хаус 3 лагман хаус 3 гурман 3 рамен тен 3 дагестанская лавка 3 работа 3 луч 3 пшеница 3 жан-жак 3 мосплов 3 домашняя еда 3 моё кафе 3 летняя веранда 3 донер хаус 3 пронто 3 пороселло 3 ели сацебели 3 есть хинкали&пить вино 3 кухня полли 3 капучино кидс 3 хлеба&зрелищ пиццерия 3 твой кофе 3 шаурма 24 3 coffeesphere 3 nova bubble tea 3 coffeebrain 3 coffeebar'17 3 шашлык 3 the best burgers 3 tokpokki 3 free&co 3 coffee point 3 хан кебаб 3 шашлык хаус 3 шашлыкоff 3 хачапури и вино 3 тапчан 3 fit appėtit 3 хлеб с маслом 3 deli2go 3 тандыр № 1 3 уголок 3 уют 3 farш 3 poke house 3 pho u 3 raw to go 3 flip 3 чебуречная ссср 3 frank by баста 3 sova coffee 3 pho 3 чайхана ташкент 3 sattva 3 scrocchiarella 3 sedelice 3 shawarma vip house 3 траттория венеция 3 wave california poke 3 vse-em 3 white fox 3 jeffrey's coffeeshop 3 white fox cafe 3 старый город 3 арарат 3 black star burger 3 hot dog bulldog 3 хочу шашлык 3 kafin 3 стардогс 3 brooms 3 i-cup 3 баракат 3 il letterato 3 ян примус 3 яндекс.лавка 3 jeffrey's coffee 3 18 грамм 3 алёнка 3 pims 3 чайхана бишкек сити 3 cafe 3 coffee guru 3 mamamai 3 хлеб & co 3 хинкальный дом 3 ho chu pho 3 шашлычный дворик 3 city life 3 burger heroes 3 сусеки 3 чайхана ош 2 чайхана манас 2 хлебница 2 оля 2 чайхана азия 2 чайхана халаль 2 хорошее место 2 чайхана sabr 2 чайная высота 2 островок суши 2 островок 2 парус 2 орхан 2 чайка 2 смак 2 чайхана элина 2 шик шашлык 2 шоти 2 мюнгер 2 музейное кафе 2 шпинат 2 щепка 2 эзо 2 может, кофе? 2 юг 2 южный дворик 2 юность 2 мишель 2 мисада 2 юрта 2 мир шашлыков 2 ё-ланч 2 мясо&паста 2 шеф бургер 2 чаме-чаме 2 нам 2 чебуреки манты 2 чебуречная история 2 черетто 2 черетто море 2 огонёк 2 чинар 2 обедов 2 чито-ра 2 нью-йорк пицца и гриль 2 шаурма на углях 2 шафран 2 неслучайно 08 08 2 нейборс 2 шашлычная № 1 2 шашлычный двор 2 чихо 2 полянка 2 перекрёсток 2 тарелка 2 самарканд сити 2 сундук 2 суши love 2 салют 2 суши сет 2 сыто пьяно 2 садовод 2 сытый гусь 2 ташир пицца 2 столовая-кафе росинка 2 тбилисо 2 тбилисоба 2 рябина 2 тирольские пироги 2 руккола 2 рубим бургер 2 ткемали 2 роса 2 страдивари 2 столовая № 1 2 хлеб и вино 2 семейное кафе 2 снеди феди 2 сити лайф 2 синнабон 2 сикварули 2 соль 2 семейный очаг 2 соседи 2 ссср 2 старый баку 2 самса № 1 2 сезоны 2 север-метрополь 2 свидание на крыше 2 старый дворик 2 старый сычуань 2 масала хаус 2 сварня 2 столичный вкус 2 топ chick 2 роко бэй — мох и кофе 2 точка 2 хинкальная легенда 2 фудмаркет 2 праймбиф бар 2 халал 2 халва 2 хаят 2 хинкали и вино 2 сицилия 2 подсолнух 2 хинкальная № 1 2 ренессанс 2 пицца на районе 2 пицца и канноли 2 питербургер 2 хлеб да выпечка 2 пион 2 пикник 2 пивной ресторан пив&ко 2 печорин 2 фрателло 2 профессор пуф 2 французская пекарня 2 фортуна 2 регистан 2 трактир 2 реберная № 1 2 рандеву 2 трдельникъ 2 раковая 2 турецкая лавка 2 раковарня клешни и хвосты 2 раковарня иван раковар 2 ракета 2 удача 2 узбечка 2 урюк 2 фергана 2 публика 2 филин 2 птишу 2 матрёшка 2 ёрш 2 мархал 2 бишкек 2 steak it easy 2 spoon&dagger 2 shwarm 2 saperavi cafe 2 right habits 2 remy kitchen bakery 2 prolunch 2 point 242 2 plov.com 2 pho oanh 2 pho ngon 2 pho hanoi 2 pho bo 2 one special 2 omg coffee 2 navat 2 naturality 2 mátes 2 more poke 2 milk&beans 2 max bakery 2 marketplace 2 manny's burger 2 life food 2 levin bakehouse 2 les 2 leon 2 le круассан 2 kulinari 2 sub cafe 2 temple bar 2 the hummus 2 zефир 2 бизнес-кафе 2 библиотека shisha lounge 2 беседка 2 барбариста 2 бар-ресторан территория 2 бамбл кофе 2 апельсин 2 антонио 2 андиамо 2 азербайджан 2 марков двор 2 автоспастудия 2 авокадо 2 zotman pizza 2 the вареники 2 zames 2 zacoffee 2 you&coffee 2 wok pho mi 2 winners 2 well's home cafe 2 we cidreria 2 vua pho 2 viet quan 2 viet ngon 2 tu ton 2 tsomi 2 torro grill 2 kaya coffee shop 2 karavan 2 j'pan 2 camorra pizza e birra 2 conversation 2 coffprice 2 coffeeshots 2 coffeeshop company 2 coffee way 2 coffee party 2 coffee music 2 coffee like 2 coffee in 2 coffee break 2 chicha san chen 2 cassette cafe 2 campus 2 camera obscura 2 crop. coffee & smoothie bar 2 café de paris 2 cafe inn 2 bro&n 2 bowl family 2 boston seafood & bar 2 bon lavash 2 bb&burgers 2 asia gourmet 2 arcus bar and food 2 arabix 2 americano black coffee & food 2 air coffee 2 8 вафель 2 cosmic latte 2 cvc китайская кухня 2 istanbul 2 fry’d 2 ipho cafe 2 il pittore 2 ikigai 2 i need doner 2 hq! coffee 2 hite 2 gøg 2 gump's 2 green v. a. i. 2 grao de cafe 2 glowsubs 2 georgian garden 2 gentleman coffee 2 fresh 2 delimarche 2 frankie pizza 2 foodband.ru 2 food low cost sushi 2 florentini 2 finch 2 fibo pasta & ravioli 2 eshak 2 eco шаурма 2 eat&play 2 dон хулио 2 dunkin' donuts 2 dizengof99 2 demi coffee shop 2 бистро 24 2 азбука daily 2 диван 2 иль марко 2 изи паб 2 лавашок 2 блинбери 2 иди обниму 2 зефир 2 здрасте 2 зарафшон 2 зандукели 2 лаззат 2 ланч поинт 2 жираф 2 жига дрыга 2 лао ли 2 еда greek 2 еда 2 еврокафе 2 евразия 2 дядюшка хо 2 дымок 2 донер в пите 2 домашний вкус 2 домашние обеды 2 лента онлайн 2 изюм 2 илья муромец 2 дежене 2 империя пиццы 2 китайский ресторан 2 кинто 2 ком 1989 2 кинг авто 2 кафешка 2 кафетеррия 2 кафетериус 2 кафе-столовая 2 кофедей 2 кафе-пекарня 2 катюша 2 кариночка 2 караван 2 калитки 2 кабул 2 кофети 2 кружка паб 2 кушавель 2 кушай город 2 кабуки 2 итальянский ресторан dapino 2 искра 2 индийская точка 2 лес 2 клёво 2 магнолия 2 манас 2 галерея вкуса 2 вьетнамское кафе 2 вьетнамская кухня 2 м2 органик 2 лечо 2 бота 2 мадина 2 виват пицца 2 маргарита 2 маленькая пекарня журавлевых 2 весна 2 верона 2 венахи 2 булочная № 5 2 везувио 2 булошная № 1 2 бёргер стейк 2 малетон 2 мангал 2 буркина фасоль 2 бульвар 2 гастробар 2 бульбяная 2 гедонист 2 литературное кафе 2 дворик 2 ли 2 лимонадница 2 да, еда 2 гурмэ ланч 2 груша 2 блинная 2 гриль парк 2 линдфорс 2 гранат 2 горячая выпечка 2 городское 2 бобры и утки 2 гораздо 2 лоза 2 луна 2 гладиатор 2 кофе пью 1 4 сезона 1 чао-пицца 1 drive 1 мясо на углях 1 кофейник 1 миндаль 1 крепери 1 bakery 1 bigсуши 1 лагман 1 любовь и сладости 1 мореморе 1 шашлыки 1 ливан хаус 1 easy pizza 1 сириус 1 пицца экспресс 1 китчен 1 суши-пицца 312 1 suшi 1 tasty thai 1 городок 1 роллофф 1 рома 1 vintage 1 wаурма 1 виолино 1 суши таун 1 дастархан 1 суши wok 1 zafferano 1 в своей тарелке 1 бюро пиццы 1 бакинский дворик 1 баку 1 барбарис 1 сказка 1 дайнинг холл 1 ricers 1 чайхана-24 1 чабан чуду 1 кинобар 1 чайхана хан 1 парк 1 пекарня № 1 1 halal food 1 пивбар 1 home 1 чай 1 kimpab 1 радуга 1 хинкальная экспресс 1 хинкали 1 поминальная трапеза 1 харчевниковъ 1 прованс 1 диана 1 ploveberry 1 уйгурский лагман 1 1-я креветочная 1 Name: name, dtype: int64 "Сетей" из одного заведения: 61 Сетей: 686 Сетевых заведений: 3176
Проверим, есть ли опечатки в названиях "сетей" из одного заведения
#уникальные названия сетей, с группировкой по категории
pd.set_option('display.max_rows', None)
temp3 = df.loc[df['chain'] == 1].groupby('name').agg({'name':'count'})
temp4 = temp3.loc[temp3['name']>1].index.to_list()
temp8 = df.query('name.isin(@temp4)==True')[['category', 'name']].sort_values(['category', 'name']).drop_duplicates()
temp8
| category | name | |
|---|---|---|
| 227 | бар,паб | bon lavash |
| 245 | бар,паб | brasserie lambic |
| 279 | бар,паб | brooms |
| 303 | бар,паб | burger heroes |
| 812 | бар,паб | eshak |
| 878 | бар,паб | flip |
| 911 | бар,паб | frank by баста |
| 1075 | бар,паб | hite |
| 1147 | бар,паб | istanbul |
| 1198 | бар,паб | kaya coffee shop |
| 1381 | бар,паб | manny's burger |
| 1387 | бар,паб | marketplace |
| 1941 | бар,паб | right habits |
| 2093 | бар,паб | steak it easy |
| 2170 | бар,паб | temple bar |
| 2360 | бар,паб | we cidreria |
| 2739 | бар,паб | бар-ресторан территория |
| 2807 | бар,паб | библиотека shisha lounge |
| 2811 | бар,паб | бизнес-кафе |
| 2869 | бар,паб | бобры и утки |
| 2934 | бар,паб | бульвар |
| 3109 | бар,паб | венахи |
| 3323 | бар,паб | гамбринус |
| 3386 | бар,паб | голубка |
| 3436 | бар,паб | гриль парк |
| 3439 | бар,паб | гриль хаус |
| 3923 | бар,паб | жан-жак |
| 3937 | бар,паб | жига дрыга |
| 3968 | бар,паб | зарафшон |
| 4020 | бар,паб | изи паб |
| 4061 | бар,паб | искра |
| 4080 | бар,паб | кабуки |
| 4108 | бар,паб | кампус |
| 4157 | бар,паб | катюша |
| 4368 | бар,паб | кафе бар |
| 4479 | бар,паб | кафе-бар |
| 4569 | бар,паб | квартира 44 |
| 4634 | бар,паб | колбасофф |
| 4926 | бар,паб | кружка паб |
| 5120 | бар,паб | легенда |
| 5147 | бар,паб | лес |
| 5199 | бар,паб | луч |
| 5224 | бар,паб | м2 органик |
| 5298 | бар,паб | марков двор |
| 5330 | бар,паб | маяк |
| 5405 | бар,паб | мисада |
| 5425 | бар,паб | мое кафе |
| 5495 | бар,паб | мск lounge |
| 5535 | бар,паб | му-му |
| 5569 | бар,паб | мясо&паста |
| 5572 | бар,паб | мясо&рыба |
| 5580 | бар,паб | мята lounge |
| 5609 | бар,паб | нам |
| 5622 | бар,паб | натахтари |
| 5628 | бар,паб | находка |
| 5642 | бар,паб | нейборс |
| 5707 | бар,паб | огонёк |
| 5889 | бар,паб | пельменная |
| 5962 | бар,паб | питербургер |
| 6081 | бар,паб | пороселло |
| 6134 | бар,паб | прогресс |
| 6170 | бар,паб | пшеница |
| 6193 | бар,паб | раковарня иван раковар |
| 6195 | бар,паб | раковарня клешни и хвосты |
| 6197 | бар,паб | раковая |
| 6217 | бар,паб | реберная № 1 |
| 6230 | бар,паб | ренессанс |
| 6335 | бар,паб | ресторан мацони |
| 6513 | бар,паб | сварня |
| 6889 | бар,паб | сыто пьяно |
| 6970 | бар,паб | тбилисо |
| 7070 | бар,паб | точка |
| 7165 | бар,паб | удача |
| 7228 | бар,паб | филин |
| 7375 | бар,паб | хинкали и вино |
| 7404 | бар,паб | хинкальная |
| 7472 | бар,паб | хинкальный дом |
| 7487 | бар,паб | хлеб и вино |
| 7711 | бар,паб | чайхана самарканд |
| 7826 | бар,паб | чебуречная ссср |
| 8012 | бар,паб | шашлыкоff |
| 8304 | бар,паб | ян примус |
| 8401 | бар,паб | ёрш |
| 939 | булочная | french bakery |
| 944 | булочная | french bakery sedelice |
| 1691 | булочная | paul |
| 1932 | булочная | remy kitchen bakery |
| 2639 | булочная | арамье |
| 2731 | булочная | бамбл кофе |
| 2913 | булочная | булка |
| 2930 | булочная | булошная № 1 |
| 2991 | булочная | буханка |
| 3169 | булочная | вкус востока |
| 3221 | булочная | волконский |
| 3403 | булочная | горячая выпечка |
| 3457 | булочная | грузинская кухня |
| 3696 | булочная | домашний вкус |
| 4506 | булочная | кафе-пекарня |
| 4940 | булочная | кулинариум |
| 5173 | булочная | линдфорс |
| 5254 | булочная | маковка |
| 5849 | булочная | пекарня |
| 5859 | булочная | пекарня буханка |
| 5917 | булочная | печорин |
| 6013 | булочная | плов |
| 6072 | булочная | пончики |
| 6076 | булочная | пончики! выпекаем на месте |
| 6150 | булочная | профессор пуф |
| 6473 | булочная | сам пришёл |
| 6515 | булочная | свежая выпечка |
| 6615 | булочная | скалка |
| 6974 | булочная | тбилисоба |
| 6978 | булочная | твой кофе |
| 7264 | булочная | французская пекарня |
| 7320 | булочная | халяль |
| 7481 | булочная | хлеб & co |
| 7484 | булочная | хлеб да выпечка |
| 7490 | булочная | хлеб насущный |
| 7512 | булочная | хлеб с маслом |
| 7521 | булочная | хлебница |
| 7551 | булочная | хочу шашлык |
| 7995 | булочная | шашлык |
| 8205 | булочная | штолле |
| 160 | быстрое питание | bb&burgers |
| 239 | быстрое питание | bowl family |
| 309 | быстрое питание | bổ |
| 686 | быстрое питание | cvc китайская кухня |
| 701 | быстрое питание | deli2go |
| 716 | быстрое питание | dimsum & co |
| 781 | быстрое питание | dон хулио |
| 799 | быстрое питание | eco шаурма |
| 854 | быстрое питание | fibo pasta & ravioli |
| 919 | быстрое питание | free&co |
| 964 | быстрое питание | fry’d |
| 994 | быстрое питание | georgian garden |
| 1002 | быстрое питание | glowsubs |
| 1078 | быстрое питание | ho chu pho |
| 1090 | быстрое питание | hot dog bulldog |
| 1104 | быстрое питание | i need doner |
| 1116 | быстрое питание | ikigai |
| 1146 | быстрое питание | istanbul |
| 1506 | быстрое питание | ngon |
| 1701 | быстрое питание | pho |
| 1714 | быстрое питание | pho city |
| 1719 | быстрое питание | pho hanoi |
| 1722 | быстрое питание | pho ngon |
| 1734 | быстрое питание | pho viet |
| 1744 | быстрое питание | phobo |
| 1823 | быстрое питание | plov.com |
| 2015 | быстрое питание | shawarma vip house |
| 2023 | быстрое питание | shwarm |
| 2107 | быстрое питание | sub cafe |
| 2192 | быстрое питание | the hummus |
| 2226 | быстрое питание | tokpokki |
| 2251 | быстрое питание | tu ton |
| 2324 | быстрое питание | viet quan |
| 2339 | быстрое питание | vse-em |
| 2389 | быстрое питание | wild bean cafe |
| 2838 | быстрое питание | бистро 24 |
| 2845 | быстрое питание | бишкек |
| 2857 | быстрое питание | блинная |
| 2885 | быстрое питание | бота |
| 3031 | быстрое питание | быстрое питание |
| 3039 | быстрое питание | бёргер стейк |
| 3063 | быстрое питание | вай мэ! |
| 3168 | быстрое питание | вкус востока |
| 3177 | быстрое питание | вкус дня |
| 3215 | быстрое питание | воккер |
| 3245 | быстрое питание | восточная кухня |
| 3288 | быстрое питание | выпечка |
| 3313 | быстрое питание | вьетнамское кафе |
| 3337 | быстрое питание | гастро бистро шаверма-братуха |
| 3402 | быстрое питание | горячая выпечка |
| 3408 | быстрое питание | грабли |
| 3438 | быстрое питание | гриль хаус |
| 3454 | быстрое питание | грузинская кухня |
| 3497 | быстрое питание | да, еда |
| 3509 | быстрое питание | дагестанская лавка |
| 3584 | быстрое питание | диван |
| 3698 | быстрое питание | домашняя еда |
| 3788 | быстрое питание | донер |
| 3802 | быстрое питание | донер в пите |
| 3808 | быстрое питание | донер кебаб |
| 3834 | быстрое питание | донер хаус |
| 3877 | быстрое питание | дядюшка хо |
| 3884 | быстрое питание | еврокафе |
| 3889 | быстрое питание | еда greek |
| 3947 | быстрое питание | за обе щёки |
| 4046 | быстрое питание | индийская точка |
| 4099 | быстрое питание | калина |
| 4538 | быстрое питание | кафетерий |
| 4605 | быстрое питание | китайская кухня |
| 4725 | быстрое питание | кофе с собой |
| 4903 | быстрое питание | крошка картошка |
| 5055 | быстрое питание | лавашок |
| 5079 | быстрое питание | лаки сувлаки |
| 5099 | быстрое питание | лао ли |
| 5135 | быстрое питание | лепим и варим |
| 5160 | быстрое питание | лечо |
| 5235 | быстрое питание | магбургер |
| 5273 | быстрое питание | мангал |
| 5289 | быстрое питание | маргарита |
| 5312 | быстрое питание | масала хаус |
| 5406 | быстрое питание | мисада |
| 5517 | быстрое питание | му-му |
| 5762 | быстрое питание | островок суши |
| 6012 | быстрое питание | плов |
| 6050 | быстрое питание | подсолнух |
| 6171 | быстрое питание | пян-се |
| 6493 | быстрое питание | самса № 1 |
| 6516 | быстрое питание | свежая выпечка |
| 6655 | быстрое питание | смак |
| 6711 | быстрое питание | стардогс |
| 6922 | быстрое питание | тандыр |
| 6930 | быстрое питание | тандыр № 1 |
| 6996 | быстрое питание | теремок |
| 7059 | быстрое питание | топ chick |
| 7106 | быстрое питание | трдельникъ |
| 7198 | быстрое питание | уют |
| 7217 | быстрое питание | фергана |
| 7317 | быстрое питание | халяль |
| 7331 | быстрое питание | хан кебаб |
| 7343 | быстрое питание | хачапури |
| 7365 | быстрое питание | хинкали - gали! |
| 7394 | быстрое питание | хинкальная |
| 7538 | быстрое питание | хорошее место |
| 7602 | быстрое питание | чайхана |
| 7719 | быстрое питание | чайхана ташкент |
| 7741 | быстрое питание | чайхана халяль |
| 7867 | быстрое питание | чихо |
| 7883 | быстрое питание | шаверма |
| 7951 | быстрое питание | шаурма 24 |
| 7961 | быстрое питание | шаурма в пите |
| 7974 | быстрое питание | шаурма на углях |
| 7994 | быстрое питание | шашлык |
| 8024 | быстрое питание | шашлычная № 1 |
| 8034 | быстрое питание | шашлычный дворик |
| 8067 | быстрое питание | шик шашлык |
| 49 | кафе | 8 вафель |
| 116 | кафе | asia gourmet |
| 238 | кафе | bowl family |
| 311 | кафе | bổ |
| 320 | кафе | cafe |
| 328 | кафе | cafe inn |
| 348 | кафе | café de paris |
| 357 | кафе | campus |
| 386 | кафе | chicha san chen |
| 392 | кафе | chicko |
| 429 | кафе | city life |
| 461 | кафе | cofefest |
| 521 | кафе | coffee party |
| 524 | кафе | coffee point |
| 651 | кафе | conversation |
| 675 | кафе | crop. coffee & smoothie bar |
| 702 | кафе | deli2go |
| 704 | кафе | delimarche |
| 725 | кафе | dizengof99 |
| 752 | кафе | drive café |
| 782 | кафе | dон хулио |
| 794 | кафе | eat&play |
| 855 | кафе | fibo pasta & ravioli |
| 870 | кафе | fit appėtit |
| 896 | кафе | foodband.ru |
| 921 | кафе | french bakery |
| 941 | кафе | french bakery sedelice |
| 946 | кафе | fresh |
| 995 | кафе | georgian garden |
| 1091 | кафе | hot dog bulldog |
| 1094 | кафе | hq! coffee |
| 1142 | кафе | ipho cafe |
| 1157 | кафе | j'pan |
| 1187 | кафе | kafin |
| 1210 | кафе | kitchen |
| 1227 | кафе | korean chick |
| 1249 | кафе | kuzina |
| 1311 | кафе | les |
| 1373 | кафе | mamamai |
| 1399 | кафе | max bakery |
| 1417 | кафе | menza |
| 1481 | кафе | mátes |
| 1493 | кафе | naturality |
| 1496 | кафе | navat |
| 1507 | кафе | ngon |
| 1513 | кафе | nicepricecafe |
| 1536 | кафе | nova bubble tea |
| 1556 | кафе | omg coffee |
| 1636 | кафе | one&double |
| 1707 | кафе | pho bo |
| 1713 | кафе | pho city |
| 1725 | кафе | pho oanh |
| 1727 | кафе | pho street |
| 1731 | кафе | pho u |
| 1760 | кафе | pims |
| 1828 | кафе | poke house |
| 1879 | кафе | prime |
| 1980 | кафе | sattva |
| 1992 | кафе | sedelice |
| 2013 | кафе | shawarma vip house |
| 2060 | кафе | soul in the bowl |
| 2082 | кафе | star hit cafe |
| 2191 | кафе | the hummus |
| 2202 | кафе | the wild bean cafe |
| 2207 | кафе | the вареники |
| 2224 | кафе | tokpokki |
| 2248 | кафе | tsomi |
| 2322 | кафе | viet ngon |
| 2338 | кафе | vse-em |
| 2343 | кафе | vua pho |
| 2377 | кафе | wild bean |
| 2380 | кафе | wild bean cafe |
| 2410 | кафе | wok pho mi |
| 2490 | кафе | авокадо |
| 2494 | кафе | автоспастудия |
| 2503 | кафе | азбука daily |
| 2508 | кафе | азербайджан |
| 2532 | кафе | академия |
| 2580 | кафе | алёнка |
| 2592 | кафе | андерсон |
| 2635 | кафе | апельсин |
| 2657 | кафе | арарат |
| 2720 | кафе | базилик |
| 2802 | кафе | беседка |
| 2839 | кафе | бистро 24 |
| 2846 | кафе | бишкек |
| 2858 | кафе | блинная |
| 2870 | кафе | бобры и утки |
| 2891 | кафе | бранч |
| 2901 | кафе | брусника |
| 2932 | кафе | бульбяная |
| 2965 | кафе | буркина фасоль |
| 3021 | кафе | буханка |
| 3025 | кафе | буше |
| 3077 | кафе | вареничная № 1 |
| 3122 | кафе | верона |
| 3130 | кафе | весна |
| 3139 | кафе | виктория |
| 3167 | кафе | вкус востока |
| 3175 | кафе | вкус дня |
| 3180 | кафе | вкус индии |
| 3235 | кафе | восток |
| 3243 | кафе | восточная кухня |
| 3260 | кафе | вояж |
| 3275 | кафе | встреча |
| 3290 | кафе | выпечка |
| 3307 | кафе | вьетнамская кухня |
| 3312 | кафе | вьетнамское кафе |
| 3344 | кафе | гастробар |
| 3375 | кафе | гладиатор |
| 3385 | кафе | голубка |
| 3395 | кафе | городское |
| 3409 | кафе | грабли |
| 3416 | кафе | гранат |
| 3437 | кафе | гриль парк |
| 3458 | кафе | грузинская кухня |
| 3480 | кафе | гурман |
| 3484 | кафе | гурманика |
| 3507 | кафе | даблби |
| 3510 | кафе | дагестанская лавка |
| 3530 | кафе | дворик |
| 3583 | кафе | диван |
| 3694 | кафе | домашние обеды |
| 3695 | кафе | домашний вкус |
| 3699 | кафе | домашняя еда |
| 3811 | кафе | донер кебаб |
| 3833 | кафе | донер хаус |
| 3857 | кафе | дружба |
| 3871 | кафе | дымок |
| 3881 | кафе | евразия |
| 3885 | кафе | еврокафе |
| 3886 | кафе | еда |
| 3922 | кафе | жан-жак |
| 3941 | кафе | жираф |
| 3948 | кафе | за обе щёки |
| 3960 | кафе | зандукели |
| 3979 | кафе | здрасте |
| 4023 | кафе | изюм |
| 4042 | кафе | империя |
| 4082 | кафе | кабул |
| 4094 | кафе | как дома |
| 4100 | кафе | калина |
| 4110 | кафе | кампус |
| 4124 | кафе | караван |
| 4140 | кафе | кариночка |
| 4480 | кафе | кафе-бар |
| 4505 | кафе | кафе-пекарня |
| 4509 | кафе | кафе-столовая |
| 4531 | кафе | кафетерий |
| 4557 | кафе | кафетеррия |
| 4560 | кафе | кафешка |
| 4564 | кафе | кахури |
| 4597 | кафе | кинто |
| 4647 | кафе | ком 1989 |
| 4657 | кафе | кондитерская олега ильина |
| 4660 | кафе | кондитерская-кулинария брусника |
| 4693 | кафе | кофе |
| 4723 | кафе | кофе с собой |
| 4869 | кафе | кофетун-сушитун |
| 4914 | кафе | крошка картошка |
| 4942 | кафе | кулинариум |
| 4945 | кафе | кулинариум - кулинария, пироги, салаты |
| 4948 | кафе | кулинария |
| 4960 | кафе | кулинарная лавка братьев караваевых |
| 5030 | кафе | кухня полли |
| 5033 | кафе | кушавель |
| 5036 | кафе | кушай город |
| 5056 | кафе | лавашок |
| 5067 | кафе | лагман хаус |
| 5074 | кафе | лаззат |
| 5087 | кафе | ламаджо |
| 5118 | кафе | легенда |
| 5132 | кафе | лента онлайн |
| 5136 | кафе | лепим и варим |
| 5156 | кафе | летняя веранда |
| 5162 | кафе | ли |
| 5179 | кафе | литературное кафе |
| 5186 | кафе | лоза |
| 5197 | кафе | луна |
| 5200 | кафе | луч |
| 5217 | кафе | ля фантази |
| 5243 | кафе | мадина |
| 5263 | кафе | малетон |
| 5269 | кафе | манас |
| 5309 | кафе | мархал |
| 5332 | кафе | маяк |
| 5347 | кафе | мельница |
| 5353 | кафе | меркато |
| 5380 | кафе | мимино |
| 5399 | кафе | мир шашлыков |
| 5414 | кафе | мишель |
| 5423 | кафе | мое кафе |
| 5441 | кафе | монастырская трапеза |
| 5480 | кафе | мосплов |
| 5491 | кафе | моё кафе |
| 5513 | кафе | му-му |
| 5544 | кафе | музейное кафе |
| 5623 | кафе | натахтари |
| 5690 | кафе | оазис |
| 5697 | кафе | обедов |
| 5708 | кафе | огонёк |
| 5709 | кафе | одесса-мама |
| 5720 | кафе | оливка |
| 5725 | кафе | оля |
| 5746 | кафе | ором |
| 5749 | кафе | орхан |
| 5757 | кафе | остров |
| 5761 | кафе | островок |
| 5776 | кафе | очаг |
| 5779 | кафе | ош |
| 5801 | кафе | пан запекан |
| 5839 | кафе | парус |
| 5851 | кафе | пекарня |
| 5886 | кафе | пельменная |
| 5900 | кафе | перекрёсток |
| 5937 | кафе | пикник |
| 5943 | кафе | пион |
| 5974 | кафе | пицца и канноли |
| 6011 | кафе | плов |
| 6022 | кафе | плов центр |
| 6049 | кафе | подсолнух |
| 6059 | кафе | полянка |
| 6071 | кафе | пончики |
| 6103 | кафе | правда кофе |
| 6113 | кафе | праймбиф бар |
| 6137 | кафе | прогресс |
| 6159 | кафе | птишу |
| 6162 | кафе | публика |
| 6168 | кафе | пшеница |
| 6179 | кафе | работа |
| 6200 | кафе | рамен тен |
| 6203 | кафе | рамен-клаб |
| 6208 | кафе | рандеву |
| 6221 | кафе | регистан |
| 6411 | кафе | рубим бургер |
| 6418 | кафе | руккола |
| 6435 | кафе | рыбная мануфактура № 1 |
| 6442 | кафе | рэдимэйд |
| 6448 | кафе | рябина |
| 6455 | кафе | садовод |
| 6470 | кафе | салют |
| 6471 | кафе | сам пришёл |
| 6475 | кафе | самарканд |
| 6484 | кафе | самарканд сити |
| 6517 | кафе | свежая выпечка |
| 6524 | кафе | свидание на крыше |
| 6539 | кафе | сезоны |
| 6545 | кафе | семейное кафе |
| 6551 | кафе | семейный очаг |
| 6571 | кафе | сеть поминальных залов |
| 6596 | кафе | сити лайф |
| 6628 | кафе | скалка |
| 6677 | кафе | соль |
| 6698 | кафе | ссср |
| 6724 | кафе | старый город |
| 6726 | кафе | старый дворик |
| 6735 | кафе | стейк & бургер |
| 6801 | кафе | столовая № 1 |
| 6821 | кафе | сундук |
| 6833 | кафе | суши love |
| 6849 | кафе | суши сет |
| 6890 | кафе | сыто пьяно |
| 6920 | кафе | тандыр |
| 6928 | кафе | тандыр № 1 |
| 6939 | кафе | тануки |
| 7040 | кафе | тирольские пироги |
| 7071 | кафе | точка |
| 7076 | кафе | трактир |
| 7124 | кафе | турецкая лавка |
| 7164 | кафе | удача |
| 7197 | кафе | уют |
| 7218 | кафе | фергана |
| 7251 | кафе | фортуна |
| 7263 | кафе | французская пекарня |
| 7304 | кафе | халал |
| 7308 | кафе | халва |
| 7310 | кафе | халва, сеть почтоматов |
| 7315 | кафе | халяль |
| 7333 | кафе | хан кебаб |
| 7342 | кафе | хачапури |
| 7349 | кафе | хачапури и вино |
| 7357 | кафе | хаят |
| 7366 | кафе | хинкали - gали! |
| 7384 | кафе | хинкали-gали! |
| 7395 | кафе | хинкальная |
| 7447 | кафе | хинкальная легенда |
| 7466 | кафе | хинкальная № 1 |
| 7471 | кафе | хинкальный дом |
| 7549 | кафе | хочу шашлык |
| 7592 | кафе | чайная |
| 7596 | кафе | чайная высота |
| 7599 | кафе | чайхана |
| 7648 | кафе | чайхана sabr |
| 7651 | кафе | чайхана азия |
| 7660 | кафе | чайхана баракат |
| 7667 | кафе | чайхана бишкек сити |
| 7691 | кафе | чайхана манас |
| 7702 | кафе | чайхана ош |
| 7713 | кафе | чайхана самарканд |
| 7733 | кафе | чайхана халаль |
| 7736 | кафе | чайхана халва |
| 7739 | кафе | чайхана халяль |
| 7752 | кафе | чайхана элина |
| 7763 | кафе | чайхона |
| 7772 | кафе | чайхона айва |
| 7808 | кафе | чаме-чаме |
| 7820 | кафе | чебуреки манты |
| 7857 | кафе | чинар |
| 7863 | кафе | чито-ра |
| 7866 | кафе | чихо |
| 7973 | кафе | шаурма на углях |
| 7990 | кафе | шафран |
| 7996 | кафе | шашлык |
| 8004 | кафе | шашлык хаус |
| 8029 | кафе | шашлычный двор |
| 8032 | кафе | шашлычный дворик |
| 8038 | кафе | шашлычок |
| 8044 | кафе | швили |
| 8086 | кафе | шоколадница |
| 8199 | кафе | шоти |
| 8202 | кафе | шпинат |
| 8225 | кафе | щепка |
| 8281 | кафе | южный дворик |
| 8284 | кафе | юность |
| 8288 | кафе | юрта |
| 8382 | кафе | японская кухня |
| 16 | кофейня | 18 грамм |
| 42 | кофейня | 7 сэндвичей |
| 56 | кофейня | 9 bar coffee |
| 65 | кофейня | abc coffee roasters |
| 75 | кофейня | air coffee |
| 85 | кофейня | americano black coffee & food |
| 100 | кофейня | arabix |
| 219 | кофейня | bodrero |
| 321 | кофейня | cafe |
| 329 | кофейня | cafe inn |
| 353 | кофейня | camera obscura |
| 373 | кофейня | cassette cafe |
| 408 | кофейня | cinnabon |
| 445 | кофейня | cofefest |
| 480 | кофейня | coffee and the city |
| 485 | кофейня | coffee bean |
| 491 | кофейня | coffee break |
| 502 | кофейня | coffee guru |
| 505 | кофейня | coffee in |
| 511 | кофейня | coffee like |
| 515 | кофейня | coffee moose |
| 519 | кофейня | coffee music |
| 522 | кофейня | coffee party |
| 525 | кофейня | coffee point |
| 533 | кофейня | coffee way |
| 541 | кофейня | coffeebar'17 |
| 545 | кофейня | coffeebrain |
| 552 | кофейня | coffeekaldi's |
| 562 | кофейня | coffeeshop company |
| 564 | кофейня | coffeeshots |
| 566 | кофейня | coffeesphere |
| 577 | кофейня | coffprice |
| 580 | кофейня | cofix |
| 660 | кофейня | cosmic latte |
| 676 | кофейня | crop. coffee & smoothie bar |
| 708 | кофейня | demi coffee shop |
| 779 | кофейня | dunkin' donuts |
| 858 | кофейня | finch |
| 877 | кофейня | flip |
| 925 | кофейня | french bakery |
| 942 | кофейня | french bakery sedelice |
| 945 | кофейня | fresh |
| 991 | кофейня | gentleman coffee |
| 1020 | кофейня | grao de cafe |
| 1038 | кофейня | gump's |
| 1046 | кофейня | gøg |
| 1095 | кофейня | hq! coffee |
| 1109 | кофейня | i-cup |
| 1167 | кофейня | jeffrey's coffee |
| 1170 | кофейня | jeffrey's coffeeshop |
| 1189 | кофейня | kafin |
| 1199 | кофейня | kaya coffee shop |
| 1233 | кофейня | krispy kreme |
| 1312 | кофейня | les |
| 1315 | кофейня | levin bakehouse |
| 1428 | кофейня | milk&beans |
| 1482 | кофейня | mátes |
| 1522 | кофейня | noba coffee |
| 1555 | кофейня | omg coffee |
| 1560 | кофейня | one price coffee |
| 1632 | кофейня | one special |
| 1634 | кофейня | one&double |
| 1694 | кофейня | paul |
| 1826 | кофейня | point 242 |
| 1919 | кофейня | raw to go |
| 1993 | кофейня | sedelice |
| 2014 | кофейня | shawarma vip house |
| 2038 | кофейня | skuratov, coffee roasters |
| 2063 | кофейня | sova coffee |
| 2067 | кофейня | spoon&dagger |
| 2083 | кофейня | star hit cafe |
| 2153 | кофейня | take and wake |
| 2201 | кофейня | the wild bean cafe |
| 2259 | кофейня | udcкафе |
| 2367 | кофейня | white fox |
| 2370 | кофейня | white fox cafe |
| 2374 | кофейня | wild bean |
| 2381 | кофейня | wild bean cafe |
| 2402 | кофейня | winners |
| 2434 | кофейня | you&coffee |
| 2443 | кофейня | zacoffee |
| 2471 | кофейня | zефир |
| 2581 | кофейня | алёнка |
| 2598 | кофейня | андерсон |
| 2732 | кофейня | бамбл кофе |
| 2749 | кофейня | барбариста |
| 2920 | кофейня | булкер |
| 2924 | кофейня | булочная № 5 |
| 2929 | кофейня | булошная |
| 3000 | кофейня | буханка |
| 3033 | кофейня | быстрое питание |
| 3043 | кофейня | в парке вкуснее |
| 3070 | кофейня | ванильное небо |
| 3225 | кофейня | волконский |
| 3361 | кофейня | гедонист |
| 3469 | кофейня | груша |
| 3499 | кофейня | даблби |
| 3980 | кофейня | здрасте |
| 3985 | кофейня | зефир |
| 4009 | кофейня | иди обниму |
| 4101 | кофейня | калина |
| 4102 | кофейня | калитки |
| 4119 | кофейня | капучино кидс |
| 4550 | кофейня | кафетериус |
| 4559 | кофейня | кафешка |
| 4658 | кофейня | кондитерская олега ильина |
| 4665 | кофейня | кондитерская-кулинария брусника |
| 4695 | кофейня | кофе |
| 4700 | кофейня | кофе & moloko |
| 4721 | кофейня | кофе с собой |
| 4731 | кофейня | кофе твой друг |
| 4736 | кофейня | кофе хауз |
| 4760 | кофейня | кофедей |
| 4798 | кофейня | кофемания |
| 4823 | кофейня | кофепорт |
| 4866 | кофейня | кофети |
| 4939 | кофейня | кулинариум |
| 4952 | кофейня | кулинария |
| 5253 | кофейня | маковка |
| 5259 | кофейня | маленькая пекарня журавлевых |
| 5349 | кофейня | мельница |
| 5427 | кофейня | может, кофе? |
| 5516 | кофейня | му-му |
| 5543 | кофейня | музейное кафе |
| 5644 | кофейня | неслучайно 08 08 |
| 5691 | кофейня | оазис |
| 5758 | кофейня | остров |
| 5775 | кофейня | очаг |
| 5802 | кофейня | пан запекан |
| 5888 | кофейня | пельменная |
| 5916 | кофейня | печорин |
| 5950 | кофейня | пирог хауз |
| 6075 | кофейня | пончики! выпекаем на месте |
| 6093 | кофейня | правда кофе |
| 6387 | кофейня | роко бэй — мох и кофе |
| 6531 | кофейня | север-метрополь |
| 6588 | кофейня | синнабон |
| 6616 | кофейня | скалка |
| 6682 | кофейня | соседи |
| 6829 | кофейня | сусеки |
| 6976 | кофейня | твой кофе |
| 7125 | кофейня | турецкая лавка |
| 7159 | кофейня | уголок |
| 7485 | кофейня | хлеб да выпечка |
| 7503 | кофейня | хлеб насущный |
| 7511 | кофейня | хлеб с маслом |
| 7537 | кофейня | хорошее место |
| 7762 | кофейня | чайхона |
| 7824 | кофейня | чебуречная история |
| 8059 | кофейня | шеф бургер |
| 8079 | кофейня | шоколадница |
| 8246 | кофейня | эль кафе |
| 273 | пиццерия | bro&n |
| 355 | пиццерия | camorra pizza e birra |
| 578 | пиццерия | coffprice |
| 914 | пиццерия | frankie pizza |
| 917 | пиццерия | free&co |
| 1062 | пиццерия | hatimaki |
| 1121 | пиццерия | il letterato |
| 1125 | пиццерия | il pittore |
| 1131 | пиццерия | il патио |
| 1194 | пиццерия | karavan |
| 1646 | пиццерия | osteria mario |
| 1778 | пиццерия | pizza express 24 |
| 1792 | пиццерия | pizza hut |
| 1986 | пиццерия | scrocchiarella |
| 2364 | пиццерия | well's home cafe |
| 2371 | пиццерия | white fox cafe |
| 2460 | пиццерия | zotman pizza |
| 2464 | пиццерия | zамания |
| 2526 | пиццерия | академия |
| 2555 | пиццерия | алло! пицца |
| 2615 | пиццерия | андиамо |
| 2632 | пиццерия | антонио |
| 2884 | пиццерия | бота |
| 2905 | пиццерия | брусника |
| 3104 | пиццерия | везувио |
| 3136 | пиццерия | виват пицца |
| 3384 | пиццерия | голубка |
| 3598 | пиццерия | додо пицца |
| 3708 | пиццерия | домино'с пицца |
| 4031 | пиццерия | иль марко |
| 4040 | пиццерия | империя |
| 4044 | пиццерия | империя пиццы |
| 4073 | пиццерия | итальянский ресторан dapino |
| 4735 | пиццерия | кофе хауз |
| 5039 | пиццерия | ла гатта |
| 5187 | пиццерия | лоза |
| 5252 | пиццерия | маковка |
| 5290 | пиццерия | маргарита |
| 5525 | пиццерия | му-му |
| 5558 | пиццерия | мюнгер |
| 5722 | пиццерия | оливка |
| 5819 | пиццерия | папа джонс |
| 5946 | пиццерия | пипони |
| 5973 | пиццерия | пицца и канноли |
| 5977 | пиццерия | пицца на районе |
| 5978 | пиццерия | пицца паоло |
| 5996 | пиццерия | пиццаменто |
| 6143 | пиццерия | пронто |
| 6151 | пиццерия | профессор пуф |
| 6599 | пиццерия | сити пицца |
| 6609 | пиццерия | сицилия |
| 6634 | пиццерия | скалка |
| 6967 | пиццерия | ташир пицца |
| 7099 | пиццерия | траттория венеция |
| 7227 | пиццерия | филин |
| 7266 | пиццерия | фрателло |
| 7516 | пиццерия | хлеба&зрелищ пиццерия |
| 8047 | пиццерия | швили |
| 8402 | пиццерия | ёрш |
| 4 | ресторан | 10 идеальных пицц |
| 86 | ресторан | americano black coffee & food |
| 104 | ресторан | arcus bar and food |
| 115 | ресторан | asia gourmet |
| 181 | ресторан | bfl’s |
| 197 | ресторан | black star burger |
| 234 | ресторан | boston seafood & bar |
| 278 | ресторан | brooms |
| 297 | ресторан | burger club |
| 349 | ресторан | café de paris |
| 391 | ресторан | chicko |
| 685 | ресторан | cvc китайская кухня |
| 705 | ресторан | delimarche |
| 717 | ресторан | dimsum & co |
| 724 | ресторан | dizengof99 |
| 811 | ресторан | eshak |
| 843 | ресторан | farш |
| 881 | ресторан | florentini |
| 889 | ресторан | food low cost sushi |
| 895 | ресторан | foodband.ru |
| 972 | ресторан | gagawa |
| 1021 | ресторан | grao de cafe |
| 1076 | ресторан | hite |
| 1079 | ресторан | ho chu pho |
| 1089 | ресторан | hot dog bulldog |
| 1105 | ресторан | i need doner |
| 1117 | ресторан | ikigai |
| 1123 | ресторан | il letterato |
| 1141 | ресторан | ipho cafe |
| 1158 | ресторан | j'pan |
| 1193 | ресторан | karavan |
| 1212 | ресторан | kitchen |
| 1225 | ресторан | korean chick |
| 1244 | ресторан | kulinari |
| 1309 | ресторан | leon |
| 1317 | ресторан | life food |
| 1372 | ресторан | mamamai |
| 1380 | ресторан | manny's burger |
| 1386 | ресторан | marketplace |
| 1419 | ресторан | menza |
| 1454 | ресторан | more poke |
| 1495 | ресторан | navat |
| 1509 | ресторан | ngon |
| 1655 | ресторан | osteria mario |
| 1700 | ресторан | pho |
| 1706 | ресторан | pho bo |
| 1712 | ресторан | pho city |
| 1723 | ресторан | pho ngon |
| 1726 | ресторан | pho oanh |
| 1728 | ресторан | pho street |
| 1732 | ресторан | pho u |
| 1735 | ресторан | pho viet |
| 1824 | ресторан | plov.com |
| 1829 | ресторан | poke house |
| 1842 | ресторан | prime |
| 1899 | ресторан | prolunch |
| 1918 | ресторан | raw to go |
| 1977 | ресторан | saperavi cafe |
| 1981 | ресторан | sattva |
| 2058 | ресторан | soul in the bowl |
| 2094 | ресторан | steak it easy |
| 2106 | ресторан | sub cafe |
| 2181 | ресторан | the best burgers |
| 2200 | ресторан | the wild bean cafe |
| 2232 | ресторан | torro grill |
| 2250 | ресторан | tu ton |
| 2287 | ресторан | vasilchukí chaihona №1 |
| 2323 | ресторан | viet ngon |
| 2342 | ресторан | vua pho |
| 2356 | ресторан | wave california poke |
| 2363 | ресторан | well's home cafe |
| 2447 | ресторан | zames |
| 2461 | ресторан | zotman pizza |
| 2507 | ресторан | азербайджан |
| 2518 | ресторан | айва |
| 2591 | ресторан | андерсон |
| 2616 | ресторан | андиамо |
| 2658 | ресторан | арарат |
| 2691 | ресторан | ача-чача |
| 2719 | ресторан | базилик |
| 2745 | ресторан | баракат |
| 2762 | ресторан | батони |
| 2854 | ресторан | блинбери |
| 2893 | ресторан | бранч |
| 2927 | ресторан | булошная |
| 2943 | ресторан | бургер кинг |
| 3061 | ресторан | вай мэ! |
| 3082 | ресторан | вареничная № 1 |
| 3108 | ресторан | венахи |
| 3113 | ресторан | веранда |
| 3121 | ресторан | верона |
| 3181 | ресторан | вкус индии |
| 3236 | ресторан | восток |
| 3242 | ресторан | восточная кухня |
| 3276 | ресторан | встреча |
| 3299 | ресторан | вьеткафе |
| 3306 | ресторан | вьетнамская кухня |
| 3343 | ресторан | гастробар |
| 3362 | ресторан | гедонист |
| 3365 | ресторан | генацвале |
| 3376 | ресторан | гладиатор |
| 3389 | ресторан | гораздо |
| 3406 | ресторан | грабли |
| 3415 | ресторан | гранат |
| 3452 | ресторан | грузинская кухня |
| 3470 | ресторан | груша |
| 3476 | ресторан | гудман |
| 3481 | ресторан | гурман |
| 3552 | ресторан | джаганнат |
| 3566 | ресторан | джонджоли |
| 3793 | ресторан | донер |
| 3858 | ресторан | дружба |
| 3870 | ресторан | дымок |
| 3882 | ресторан | евразия |
| 3888 | ресторан | еда greek |
| 3896 | ресторан | ели сацебели |
| 3907 | ресторан | есть хинкали&пить вино |
| 3921 | ресторан | жан-жак |
| 3967 | ресторан | зарафшон |
| 4024 | ресторан | изюм |
| 4035 | ресторан | илья муромец |
| 4043 | ресторан | империя |
| 4047 | ресторан | индийская точка |
| 4079 | ресторан | кабуки |
| 4081 | ресторан | кабул |
| 4125 | ресторан | караван |
| 4141 | ресторан | кариночка |
| 4144 | ресторан | карло |
| 4487 | ресторан | кафе-бар |
| 4563 | ресторан | кахури |
| 4590 | ресторан | кинг авто |
| 4598 | ресторан | кинто |
| 4606 | ресторан | китайская кухня |
| 4608 | ресторан | китайский ресторан |
| 4624 | ресторан | клёво |
| 4659 | ресторан | кондитерская олега ильина |
| 4676 | ресторан | корчма тарас бульба |
| 4811 | ресторан | кофемания |
| 4912 | ресторан | крошка картошка |
| 4927 | ресторан | кружка паб |
| 5029 | ресторан | кухня полли |
| 5073 | ресторан | лаззат |
| 5098 | ресторан | лао ли |
| 5131 | ресторан | лента онлайн |
| 5139 | ресторан | лепим и варим |
| 5148 | ресторан | лес |
| 5154 | ресторан | летняя веранда |
| 5216 | ресторан | ля фантази |
| 5223 | ресторан | м2 органик |
| 5239 | ресторан | магнолия |
| 5242 | ресторан | мадина |
| 5262 | ресторан | малетон |
| 5272 | ресторан | мангал |
| 5308 | ресторан | мархал |
| 5313 | ресторан | масала хаус |
| 5322 | ресторан | матрёшка |
| 5331 | ресторан | маяк |
| 5354 | ресторан | меркато |
| 5384 | ресторан | мимино |
| 5398 | ресторан | мир шашлыков |
| 5413 | ресторан | мишель |
| 5453 | ресторан | моремания |
| 5479 | ресторан | мосплов |
| 5515 | ресторан | му-му |
| 5571 | ресторан | мясо&рыба |
| 5624 | ресторан | натахтари |
| 5627 | ресторан | находка |
| 5641 | ресторан | нейборс |
| 5649 | ресторан | нияма |
| 5676 | ресторан | нью-йорк пицца и гриль |
| 5692 | ресторан | оазис |
| 5729 | ресторан | омореморе |
| 5759 | ресторан | остров |
| 5760 | ресторан | островок |
| 5763 | ресторан | островок суши |
| 5774 | ресторан | очаг |
| 5778 | ресторан | ош |
| 5840 | ресторан | парус |
| 5927 | ресторан | пивной ресторан пив&ко |
| 5963 | ресторан | питербургер |
| 5976 | ресторан | пицца на районе |
| 6021 | ресторан | плов центр |
| 6163 | ресторан | публика |
| 6190 | ресторан | ракета |
| 6202 | ресторан | рамен тен |
| 6204 | ресторан | рамен-клаб |
| 6334 | ресторан | ресторан мацони |
| 6398 | ресторан | роса |
| 6417 | ресторан | руккола |
| 6436 | ресторан | рыбная мануфактура № 1 |
| 6441 | ресторан | рэдимэйд |
| 6447 | ресторан | рябина |
| 6462 | ресторан | сакура |
| 6469 | ресторан | салют |
| 6472 | ресторан | сам пришёл |
| 6482 | ресторан | самарканд |
| 6485 | ресторан | самарканд сити |
| 6492 | ресторан | самса № 1 |
| 6525 | ресторан | свидание на крыше |
| 6540 | ресторан | сезоны |
| 6552 | ресторан | семейный очаг |
| 6579 | ресторан | сикварули |
| 6608 | ресторан | сицилия |
| 6676 | ресторан | соль |
| 6683 | ресторан | соседи |
| 6697 | ресторан | ссср |
| 6719 | ресторан | старый баку |
| 6722 | ресторан | старый город |
| 6725 | ресторан | старый дворик |
| 6729 | ресторан | старый сычуань |
| 6732 | ресторан | стейк & бургер |
| 6807 | ресторан | страдивари |
| 6822 | ресторан | сундук |
| 6850 | ресторан | суши сет |
| 6858 | ресторан | сушистор |
| 6881 | ресторан | сыроварня |
| 6931 | ресторан | тануки |
| 6951 | ресторан | тапчан |
| 6959 | ресторан | татнефть кафе |
| 6971 | ресторан | тбилисо |
| 6973 | ресторан | тбилисоба |
| 6989 | ресторан | теремок |
| 7046 | ресторан | ткемали |
| 7192 | ресторан | урюк |
| 7252 | ресторан | фортуна |
| 7254 | ресторан | франклинс бургер |
| 7307 | ресторан | халва |
| 7350 | ресторан | хачапури и вино |
| 7358 | ресторан | хаят |
| 7376 | ресторан | хинкали и вино |
| 7396 | ресторан | хинкальная |
| 7448 | ресторан | хинкальная легенда |
| 7488 | ресторан | хлеб и вино |
| 7586 | ресторан | чайка |
| 7606 | ресторан | чайхана |
| 7636 | ресторан | чайхана 24 |
| 7647 | ресторан | чайхана sabr |
| 7662 | ресторан | чайхана баракат |
| 7703 | ресторан | чайхана ош |
| 7712 | ресторан | чайхана самарканд |
| 7720 | ресторан | чайхана ташкент |
| 7732 | ресторан | чайхана халаль |
| 7735 | ресторан | чайхана халва |
| 7744 | ресторан | чайхана халяль |
| 7751 | ресторан | чайхана элина |
| 7765 | ресторан | чайхона |
| 7798 | ресторан | чайхона № 1 |
| 7802 | ресторан | чайхона №1 |
| 7809 | ресторан | чаме-чаме |
| 7838 | ресторан | черетто |
| 7840 | ресторан | черетто море |
| 7864 | ресторан | чито-ра |
| 7989 | ресторан | шафран |
| 8003 | ресторан | шашлык хаус |
| 8025 | ресторан | шашлычная № 1 |
| 8030 | ресторан | шашлычный двор |
| 8046 | ресторан | швили |
| 8060 | ресторан | шеф бургер |
| 8200 | ресторан | шоти |
| 8233 | ресторан | эзо |
| 8274 | ресторан | юг |
| 8280 | ресторан | южный дворик |
| 8292 | ресторан | я люблю суши |
| 8303 | ресторан | ян примус |
| 8307 | ресторан | яндекс лавка |
| 8376 | ресторан | яндекс.лавка |
| 8383 | ресторан | японская кухня |
| 105 | столовая | arcus bar and food |
| 1029 | столовая | green v. a. i. |
| 1304 | столовая | le круассан |
| 1900 | столовая | prolunch |
| 2634 | столовая | апельсин |
| 2717 | столовая | базилик |
| 2744 | столовая | баракат |
| 2812 | столовая | бизнес-кафе |
| 2916 | столовая | булкер |
| 3115 | столовая | веранда |
| 3140 | столовая | виктория |
| 3237 | столовая | восток |
| 3318 | столовая | галерея вкуса |
| 3488 | столовая | гурмэ ланч |
| 3536 | столовая | дежене |
| 3693 | столовая | домашние обеды |
| 3860 | столовая | дружба |
| 3887 | столовая | еда |
| 4060 | столовая | искра |
| 4093 | столовая | как дома |
| 4158 | столовая | катюша |
| 4511 | столовая | кафе-столовая |
| 4533 | столовая | кафетерий |
| 5035 | столовая | кушай город |
| 5096 | столовая | ланч поинт |
| 5170 | столовая | лимонадница |
| 5299 | столовая | марков двор |
| 5440 | столовая | монастырская трапеза |
| 5530 | столовая | му-му |
| 5696 | столовая | обедов |
| 5887 | столовая | пельменная |
| 5949 | столовая | пирог хауз |
| 6024 | столовая | плов центр |
| 6175 | столовая | пять звёзд |
| 6229 | столовая | ренессанс |
| 6520 | столовая | свежъ |
| 6662 | столовая | снеди феди |
| 6720 | столовая | старый баку |
| 6755 | столовая | столичный вкус |
| 6800 | столовая | столовая № 1 |
| 6803 | столовая | столовая-кафе росинка |
| 6892 | столовая | сытый гусь |
| 6955 | столовая | тарелка |
| 7081 | столовая | трапеzа |
| 7173 | столовая | узбечка |
| 7284 | столовая | фудмаркет |
| 7319 | столовая | халяль |
| 7402 | столовая | хинкальная |
| 7550 | столовая | хочу шашлык |
| 7638 | столовая | чайхана 24 |
| 8398 | столовая | ё-ланч |
#уникальные названия единичных "сетей", с группировкой по категории
temp = df.loc[df['chain'] == 1].groupby('name').agg({'name':'count'})
temp1 = temp.loc[temp['name']==1].index.to_list()
df.query('name.isin(@temp1)==True')[['category', 'name']].sort_values(['category', 'name'])
| category | name | |
|---|---|---|
| 3393 | бар,паб | городок |
| 4899 | бар,паб | крепери |
| 5832 | бар,паб | парк |
| 5919 | бар,паб | пивбар |
| 7363 | бар,паб | хинкали |
| 5872 | булочная | пекарня № 1 |
| 1825 | быстрое питание | ploveberry |
| 5165 | быстрое питание | ливан хаус |
| 5166 | быстрое питание | ливан хаус |
| 7464 | быстрое питание | хинкальная экспресс |
| 7465 | быстрое питание | хинкальная экспресс |
| 3 | кафе | 1-я креветочная |
| 29 | кафе | 4 сезона |
| 141 | кафе | bakery |
| 189 | кафе | bigсуши |
| 750 | кафе | drive |
| 1051 | кафе | halal food |
| 1084 | кафе | home |
| 2332 | кафе | vintage |
| 2422 | кафе | wаурма |
| 2726 | кафе | баку |
| 3038 | кафе | бюро пиццы |
| 3515 | кафе | дайнинг холл |
| 3520 | кафе | дастархан |
| 4595 | кафе | кинобар |
| 4611 | кафе | китчен |
| 4720 | кафе | кофе пью |
| 5208 | кафе | любовь и сладости |
| 5387 | кафе | миндаль |
| 5567 | кафе | мясо на углях |
| 6065 | кафе | поминальная трапеза |
| 6132 | кафе | прованс |
| 6389 | кафе | роллофф |
| 6392 | кафе | рома |
| 6592 | кафе | сириус |
| 6835 | кафе | суши wok |
| 7179 | кафе | уйгурский лагман |
| 7583 | кафе | чай |
| 7746 | кафе | чайхана хан |
| 7756 | кафе | чайхана-24 |
| 8010 | кафе | шашлыки |
| 3159 | кофейня | виолино |
| 4765 | кофейня | кофейник |
| 5066 | кофейня | лагман |
| 6611 | кофейня | сказка |
| 7582 | кофейня | чабан чуду |
| 789 | пиццерия | easy pizza |
| 2140 | пиццерия | suшi |
| 2445 | пиццерия | zafferano |
| 6855 | пиццерия | суши-пицца 312 |
| 7812 | пиццерия | чао-пицца |
| 1206 | ресторан | kimpab |
| 1937 | ресторан | ricers |
| 2166 | ресторан | tasty thai |
| 2722 | ресторан | бакинский дворик |
| 2748 | ресторан | барбарис |
| 5468 | ресторан | мореморе |
| 5990 | ресторан | пицца экспресс |
| 6184 | ресторан | радуга |
| 6853 | ресторан | суши таун |
| 3050 | столовая | в своей тарелке |
| 3581 | столовая | диана |
| 7339 | столовая | харчевниковъ |
pd.reset_option('display.max_rows', None)
#произведём замены
df.loc[df['name'] == 'чайхона № 1', 'name'] = 'чайхона №1'
df.loc[df['name'] == 'ливан хаус', 'name'] = 'ливан хаус'
Принято решение изменить признак сетевого заведения для "сетей из одного заведения".
one_place_chain = df.loc[df['chain'] == 1].groupby('name').agg({'name':'count'})
one_place_chain_names = one_place_chain.loc[one_place_chain['name']==1].index.to_list()
df.loc[df['name'].isin(one_place_chain_names)==True, 'chain'] = 0
Итого после замен:
print('"Сетей" из одного заведения:' , (df.loc[df['chain'] == 1, 'name'].value_counts()==1).sum())
print('Несетевых заведений: ', df.loc[df['chain'] == 0, 'name'].count())
print('Сетей:' , df.loc[df['chain'] == 1, 'name'].nunique())
print('Сетевых заведений: ', df.loc[df['chain']==1, 'name'].count())
"Сетей" из одного заведения: 0 Несетевых заведений: 5227 Сетей: 685 Сетевых заведений: 3176
#гистограммы по столбцам с аномалиями
df[['middle_avg_bill', 'middle_coffee_cup', 'seats']].hist(bins=30, figsize=(20, 8))
plt.show()
На графике видно, основная масса:
df.loc[df['middle_avg_bill'] > 6000].sort_values('middle_avg_bill', ascending=False)
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4310 | кафе | ресторан | Москва, Каширское шоссе, 23, стр. 2 | Южный административный округ | ежедневно, круглосуточно | 55.657450 | 37.646665 | 4.1 | высокие | Средний счёт:20000–50000 ₽ | 35000.0 | NaN | 0 | 100.0 |
| 7869 | чойхона | бар,паб | Москва, Дмитровское шоссе, 95А | Северный административный округ | ежедневно, 10:00–23:00 | 55.871497 | 37.543555 | 4.4 | высокие | Средний счёт:5000–17000 ₽ | 11000.0 | NaN | 0 | 49.0 |
| 3404 | гости | ресторан | Москва, шоссе Энтузиастов, 52 | Восточный административный округ | пн,вс 18:00–22:30 | 55.759088 | 37.760570 | 4.1 | высокие | Средний счёт:5000–15000 ₽ | 10000.0 | NaN | 0 | NaN |
| 2373 | white rabbit | ресторан | Москва, Смоленская площадь, 3 | Центральный административный округ | ежедневно, 12:00–00:00 | 55.747608 | 37.581248 | 4.9 | высокие | Средний счёт:7000–7500 ₽ | 7250.0 | NaN | 0 | 150.0 |
| 53 | 800°с contemporary steak | ресторан | Москва, Большой Патриарший переулок, 6, стр. 1 | Центральный административный округ | ежедневно, 09:00–23:30 | 55.762708 | 37.592138 | 4.7 | высокие | Средний счёт:6000–8000 ₽ | 7000.0 | NaN | 0 | 75.0 |
| 5295 | марио | ресторан | Москва, улица Климашкина, 17 | Центральный административный округ | ежедневно, 12:00–00:00 | 55.767792 | 37.568453 | 4.5 | высокие | Средний счёт:7000 ₽ | 7000.0 | NaN | 0 | 100.0 |
| 7586 | чайка | ресторан | Москва, Краснопресненская набережная, 12А | Центральный административный округ | ежедневно, 12:00–00:00 | 55.752857 | 37.556365 | 4.8 | высокие | Средний счёт:5000–8000 ₽ | 6500.0 | NaN | 1 | 250.0 |
Набольшее подозрение вызывают:
Принято решение уджалить аномалии.
#удаление аномальных значений
df = df.loc[(df['middle_avg_bill'] < 11000)|(df['middle_avg_bill'].isna()==True)]
df.loc[df['middle_coffee_cup'] > 300].sort_values('middle_coffee_cup', ascending=False)
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8122 | шоколадница | кофейня | Москва, Большая Семёновская улица, 27, корп. 1 | Восточный административный округ | ежедневно, 08:00–23:00 | 55.782268 | 37.709022 | 4.2 | средние | Цена чашки капучино:230–2907 ₽ | NaN | 1568.0 | 1 | 48.0 |
| 498 | coffee fm | кофейня | Москва, Авиамоторная улица, 10, корп. 1 | Юго-Восточный административный округ | пн-пт 08:00–21:00; сб,вс 09:00–19:00 | 55.754233 | 37.715491 | 4.3 | - | Цена чашки капучино:250–500 ₽ | NaN | 375.0 | 0 | 190.0 |
| 4551 | кафетериус | кофейня | Москва, Большая Никитская улица, 35 | Центральный административный округ | пн-пт 08:00–22:00; сб,вс 10:00–22:00 | 55.757292 | 37.595033 | 4.3 | средние | Цена чашки капучино:279–378 ₽ | NaN | 328.0 | 1 | 30.0 |
| 8102 | шоколадница | кофейня | Москва, Бутырская улица, 95 | Северный административный округ | пн-чт 07:30–23:00; пт 07:30–00:00; сб круглосу... | 55.807331 | 37.580716 | 4.1 | средние | Цена чашки капучино:300–350 ₽ | NaN | 325.0 | 1 | 61.0 |
| 3586 | диемм | кофейня | Москва, 3-я Фрунзенская улица, 1 | Центральный административный округ | ежедневно, 08:30–23:00 | 55.719000 | 37.582203 | 4.3 | средние | Цена чашки капучино:250–390 ₽ | NaN | 320.0 | 0 | 30.0 |
| 1129 | il tocco | кофейня | Москва, Ходынский бульвар, 11А | Северный административный округ | пн-пт 08:00–21:00; сб,вс 09:00–22:00 | 55.785455 | 37.530359 | 4.1 | средние | Цена чашки капучино:280–350 ₽ | NaN | 315.0 | 0 | NaN |
#проверка нудевого среднего чека
df.loc[df['middle_avg_bill'] == 0]
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4807 | кофемания | кофейня | Москва, улица Новый Арбат, 19 | Центральный административный округ | ежедневно, круглосуточно | 55.752136 | 37.587784 | 4.5 | высокие | Средний счёт:от 0 ₽ | 0.0 | NaN | 1 | 200.0 |
Обнаружено одно значение, в данных о среднем чеке явно ошибка, принято решение удалить ошибочное значение.
#удаление значения
df.loc[df['middle_avg_bill']==0, 'avg_bill'] = '-'
df.loc[df['middle_avg_bill']==0, 'middle_avg_bill'] = np.nan
df.loc[df['name']=='шоколадница', ['name', 'middle_coffee_cup']].hist(bins=60)
plt.show()
Аномально высокая максимальная стоимость чашки кофе в одной из кофеин сети "Шоколадница", при этом нижний порог цены - 230р. - не выделяется из остальных. Средняя стоимость кофе по всей сети составляет от 170 до 350р. Полагаю, что в данных опечатка и верхний порог стоимости кофе в "Шоколаднице" на Большой Семёновской улице, 27 составляет 290р.
#исправление в стоимости кофе
df.loc[df['avg_bill']=='Цена чашки капучино:230–2907 ₽', 'avg_bill'] = 'Цена чашки капучино:230–290 ₽'
df.loc[df['middle_coffee_cup']==1568.0, 'middle_coffee_cup'] = (230+290)/2
#проверка количества мест
df.loc[df['seats']>=280].sort_values('seats', ascending=False)
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8383 | японская кухня | ресторан | Москва, проспект Вернадского, 121, корп. 1 | Западный административный округ | - | 55.657255 | 37.481547 | 4.4 | - | - | NaN | NaN | 1 | 1288.0 |
| 81 | alternative coffee | кофейня | Москва, проспект Вернадского, 41, стр. 1 | Западный административный округ | пн-пт 09:00–21:00; сб,вс 09:00–22:00 | 55.673128 | 37.502992 | 4.3 | - | - | NaN | NaN | 0 | 1288.0 |
| 1333 | loft-cafe академия | кафе | Москва, проспект Вернадского, 84, стр. 1 | Западный административный округ | пн-пт 09:00–20:00; сб 09:00–16:00 | 55.665142 | 37.478603 | 3.6 | - | - | NaN | NaN | 0 | 1288.0 |
| 5925 | пивной ресторан | бар,паб | Москва, проспект Вернадского, 121, корп. 1 | Западный административный округ | - | 55.657133 | 37.481508 | 4.5 | - | - | NaN | NaN | 0 | 1288.0 |
| 5558 | мюнгер | пиццерия | Москва, проспект Вернадского, 97, корп. 1 | Западный административный округ | пн-пт 08:00–21:00; сб,вс 10:00–21:00 | 55.667505 | 37.491001 | 4.8 | - | - | NaN | NaN | 1 | 1288.0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1937 | ricers | ресторан | Москва, улица Академика Анохина, 58 | Западный административный округ | ежедневно, 10:00–23:00 | 55.650316 | 37.469068 | 4.4 | - | - | NaN | NaN | 0 | 280.0 |
| 4935 | кувшин | ресторан | Москва, улица Академика Анохина, 58 | Западный административный округ | ежедневно, 12:00–23:00 | 55.650134 | 37.469377 | 4.6 | - | - | NaN | NaN | 0 | 280.0 |
| 1547 | odo sushi bar | ресторан | Москва, Шмитовский проезд, 39, корп. 1 | Центральный административный округ | ежедневно, 11:00–23:00 | 55.754352 | 37.523042 | 4.4 | - | - | NaN | NaN | 0 | 280.0 |
| 1428 | milk&beans | кофейня | Москва, Шмитовский проезд, 39, корп. 1 | Центральный административный округ | ежедневно, 08:00–22:00 | 55.754618 | 37.524067 | 4.2 | - | - | NaN | NaN | 1 | 280.0 |
| 4936 | кувшинчик | ресторан | Москва, улица Академика Анохина, 58 | Западный административный округ | пн-чт 12:00–23:00; пт,сб 12:00–00:00; вс 12:00... | 55.650398 | 37.469449 | 4.6 | - | - | NaN | NaN | 0 | 280.0 |
345 rows × 14 columns
#рассмотрим самые большие заведения: свыше 400 мест.
df.loc[df['seats']>=400].value_counts(['seats'])
seats 625.0 23 500.0 21 480.0 13 400.0 11 1288.0 11 450.0 6 650.0 6 495.0 6 428.0 5 478.0 4 1040.0 4 455.0 4 644.0 2 491.0 2 660.0 2 920.0 2 481.0 2 585.0 2 420.0 1 600.0 1 430.0 1 675.0 1 760.0 1 1200.0 1 dtype: int64
Большие количсетва мест имеют до 23-х повторений. Выведем эти заведения.
pd.set_option('display.max_rows', None)
df.loc[df['seats']>=400, ['seats', 'address', 'category', 'name']].sort_values(['seats', 'address', 'category'])
| seats | address | category | name | |
|---|---|---|---|---|
| 3354 | 400.0 | Москва, 1-я Тверская-Ямская улица, 2, стр. 1 | бар,паб | гастрорюмочная шесть you шесть |
| 1133 | 400.0 | Москва, 1-я Тверская-Ямская улица, 2, стр. 1 | пиццерия | il патио |
| 2178 | 400.0 | Москва, Комсомольский проспект, 28 | бар,паб | tgi fridays |
| 6889 | 400.0 | Москва, Комсомольский проспект, 28 | бар,паб | сыто пьяно |
| 3305 | 400.0 | Москва, Комсомольский проспект, 28 | кафе | вьетнамская еда фобою |
| 5213 | 400.0 | Москва, Комсомольский проспект, 28 | кафе | люстра |
| 7229 | 400.0 | Москва, Комсомольский проспект, 28 | кафе | филипповъ |
| 614 | 400.0 | Москва, Комсомольский проспект, 28 | кофейня | cofix |
| 1135 | 400.0 | Москва, Комсомольский проспект, 28 | пиццерия | il патио |
| 7574 | 400.0 | Москва, Комсомольский проспект, 28 | ресторан | цимес |
| 8069 | 400.0 | Москва, Комсомольский проспект, 28 | ресторан | шикари |
| 1086 | 420.0 | Москва, Русаковская улица, 24 | бар,паб | hong kong |
| 3654 | 428.0 | Москва, Чертановская улица, 12, корп. 1 | пиццерия | додо пицца |
| 2219 | 428.0 | Москва, Чертановская улица, 39, корп. 1 | кафе | tina |
| 6356 | 428.0 | Москва, Чертановская улица, 40, корп. 1 | бар,паб | ресторан, кафе, бар |
| 1836 | 428.0 | Москва, Чертановская улица, 40, корп. 1 | ресторан | pratto pizza |
| 7550 | 428.0 | Москва, Чертановская улица, 47, корп. 1 | столовая | хочу шашлык |
| 2297 | 430.0 | Москва, улица Большая Полянка, 56, стр. 1 | ресторан | vasilchukí chaihona №1 |
| 240 | 450.0 | Москва, улица Ленинская Слобода, 19 | быстрое питание | bowlme |
| 5378 | 450.0 | Москва, улица Ленинская Слобода, 19 | быстрое питание | милти |
| 5057 | 450.0 | Москва, улица Ленинская Слобода, 19 | кафе | лавка daily |
| 4143 | 450.0 | Москва, улица Ленинская Слобода, 19 | кофейня | карлинер |
| 1889 | 450.0 | Москва, улица Ленинская Слобода, 19 | ресторан | prime |
| 2788 | 450.0 | Москва, улица Ленинская Слобода, 19 | ресторан | белочка |
| 159 | 455.0 | Москва, Автозаводская улица, 18 | бар,паб | bb grill |
| 1682 | 455.0 | Москва, Автозаводская улица, 18 | пиццерия | pasta cup & pinsa |
| 5446 | 455.0 | Москва, Автозаводская улица, 18 | ресторан | монстер хиллс |
| 5574 | 455.0 | Москва, Автозаводская улица, 18 | ресторан | мясо&рыба |
| 5483 | 478.0 | Москва, Пресненская набережная, 10, стр. 1 | кафе | мосфильм |
| 1933 | 478.0 | Москва, Пресненская набережная, 8, стр. 1 | булочная | remy kitchen bakery |
| 428 | 478.0 | Москва, Пресненская набережная, 8, стр. 1 | ресторан | city friends |
| 2059 | 478.0 | Москва, Пресненская набережная, 8, стр. 1 | ресторан | soul in the bowl |
| 1037 | 480.0 | Москва, улица Арбат, 1 | бар,паб | guests in the city |
| 8147 | 480.0 | Москва, улица Арбат, 1 | кофейня | шоколадница |
| 3407 | 480.0 | Москва, улица Арбат, 1 | ресторан | грабли |
| 6099 | 480.0 | Москва, улица Арбат, 18, стр. 1 | кофейня | правда кофе |
| 2159 | 480.0 | Москва, улица Арбат, 21, стр. 1 | бар,паб | taksim |
| 4104 | 480.0 | Москва, улица Арбат, 23, стр. 1 | бар,паб | калифорния diner |
| 993 | 480.0 | Москва, улица Арбат, 36, стр. 1 | кафе | georgia хинкали |
| 932 | 480.0 | Москва, улица Арбат, 4, стр. 1 | кафе | french bakery |
| 5522 | 480.0 | Москва, улица Арбат, 4, стр. 1 | кафе | му-му |
| 5360 | 480.0 | Москва, улица Арбат, 4, стр. 1 | ресторан | месопотамия |
| 372 | 480.0 | Москва, улица Арбат, 42, стр. 1 | ресторан | caspian |
| 1060 | 480.0 | Москва, улица Арбат, 44, стр. 1 | бар,паб | hard rock cafe |
| 7828 | 480.0 | Москва, улица Арбат, 44, стр. 1 | бар,паб | чебуречная ссср |
| 141 | 481.0 | Москва, Олимпийский проспект, 18/1 | кафе | bakery |
| 34 | 481.0 | Москва, Олимпийский проспект, 18/1 | ресторан | 495 |
| 3934 | 491.0 | Москва, улица Вавилова, 19 | кофейня | живое кафе |
| 1884 | 491.0 | Москва, улица Вавилова, 19 | ресторан | prime |
| 4110 | 495.0 | Москва, Ленинский проспект, 146 | кафе | кампус |
| 2818 | 495.0 | Москва, Ленинский проспект, 146 | ресторан | био кафе |
| 3868 | 495.0 | Москва, Ленинский проспект, 146 | ресторан | дхаба |
| 7200 | 495.0 | Москва, Ленинский проспект, 146 | ресторан | уютный дворик |
| 7568 | 495.0 | Москва, Ленинский проспект, 146 | ресторан | центральный дом туриста |
| 7623 | 495.0 | Москва, Ленинский проспект, 146 | ресторан | чайхана |
| 6820 | 500.0 | Москва, Грайвороновская улица, 12, корп. 2 | ресторан | султан палас |
| 8055 | 500.0 | Москва, Лесная улица, 20, стр. 3 | быстрое питание | шеф burger & doner |
| 311 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кафе | bổ |
| 1036 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кафе | gt. coffee |
| 1828 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кафе | poke house |
| 5091 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кафе | ламянь |
| 5136 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кафе | лепим и варим |
| 672 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кофейня | crema |
| 1919 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кофейня | raw to go |
| 4801 | 500.0 | Москва, Лесная улица, 20, стр. 3 | кофейня | кофемания |
| 1186 | 500.0 | Москва, Лесная улица, 20, стр. 3 | ресторан | k-town korean bbq |
| 1360 | 500.0 | Москва, Лесная улица, 20, стр. 3 | ресторан | mac & cheese |
| 2025 | 500.0 | Москва, Лесная улица, 20, стр. 3 | ресторан | siam |
| 2058 | 500.0 | Москва, Лесная улица, 20, стр. 3 | ресторан | soul in the bowl |
| 2734 | 500.0 | Москва, Лесная улица, 20, стр. 3 | ресторан | бансонс бургер китчен |
| 5304 | 500.0 | Москва, Лесная улица, 20, стр. 3 | ресторан | марокко |
| 7591 | 500.0 | Москва, Лесная улица, 20, стр. 3 | ресторан | чайна таун |
| 881 | 500.0 | Москва, Старая Басманная улица, 9, корп. 1 | ресторан | florentini |
| 4438 | 500.0 | Москва, Ярославское шоссе, 1, корп. 1 | кафе | кафе при азс |
| 5779 | 500.0 | Москва, Ярославское шоссе, 114, корп. 1 | кафе | ош |
| 3235 | 500.0 | Москва, Ярославское шоссе, 19, стр. 1 | кафе | восток |
| 6339 | 585.0 | Москва, улица Сталеваров, 3Л | бар,паб | ресторан мой двор |
| 6074 | 585.0 | Москва, улица Сталеваров, 3Л | кафе | пончики от бабушки |
| 5302 | 600.0 | Москва, улица Гарибальди, 1А | кафе | мармелад |
| 3222 | 625.0 | Москва, Ленинградский проспект, 29, корп. 1 | булочная | волконский |
| 5183 | 625.0 | Москва, Ленинградский проспект, 31А, стр. 1 | бар,паб | лобби-бар манжо |
| 2154 | 625.0 | Москва, Ленинградский проспект, 31А, стр. 1 | кофейня | take and wake |
| 3072 | 625.0 | Москва, Ленинградский проспект, 31А, стр. 1 | кофейня | ванильное небо |
| 2291 | 625.0 | Москва, Ленинградский проспект, 31А, стр. 1 | ресторан | vasilchukí chaihona №1 |
| 6755 | 625.0 | Москва, Ленинградский проспект, 35, стр. 1 | столовая | столичный вкус |
| 7773 | 625.0 | Москва, Ленинградский проспект, 45, корп. 1 | кафе | чайхона айва |
| 3990 | 625.0 | Москва, Ленинградский проспект, 48, подъезд 1 | ресторан | золотая бухара |
| 569 | 625.0 | Москва, Ленинградский проспект, 60, корп. 1 | кофейня | coffeeteabar |
| 5609 | 625.0 | Москва, Ленинградский проспект, 69, стр. 1 | бар,паб | нам |
| 7786 | 625.0 | Москва, Ленинградский проспект, 69, стр. 1 | кафе | чайхона на соколе |
| 4961 | 625.0 | Москва, Ленинградский проспект, 72, корп. 1 | кафе | кулинарная лавка братьев караваевых |
| 65 | 625.0 | Москва, Ленинградский проспект, 72, корп. 1 | кофейня | abc coffee roasters |
| 2526 | 625.0 | Москва, Ленинградский проспект, 72, корп. 1 | пиццерия | академия |
| 923 | 625.0 | Москва, Ленинградский проспект, 74, корп. 1 | кафе | french bakery |
| 5627 | 625.0 | Москва, Ленинградский проспект, 74, корп. 1 | ресторан | находка |
| 6531 | 625.0 | Москва, Ленинградский проспект, 75, корп. 1 | кофейня | север-метрополь |
| 6807 | 625.0 | Москва, Ленинградский проспект, 77, корп. 1 | ресторан | страдивари |
| 277 | 625.0 | Москва, Ленинградский проспект, 78, корп. 1 | кофейня | brooklyn coffee |
| 5258 | 625.0 | Москва, Ленинградский проспект, 78, корп. 1 | пиццерия | максима пицца |
| 57 | 625.0 | Москва, Ленинградский проспект, 80, корп. 1 | кофейня | 9 bar coffee |
| 832 | 625.0 | Москва, Ленинградский проспект, 80, корп. 1 | пиццерия | falko pizza |
| 2692 | 625.0 | Москва, Ленинградский проспект, 9Б, стр. 1 | ресторан | ача-чача |
| 2318 | 644.0 | Москва, улица Миклухо-Маклая, 6 | кафе | vibes cafe |
| 4081 | 644.0 | Москва, улица Миклухо-Маклая, 6 | ресторан | кабул |
| 2188 | 650.0 | Москва, Мичуринский проспект, 22, корп. 1 | бар,паб | the fox pub |
| 8173 | 650.0 | Москва, Мичуринский проспект, 22, корп. 1 | кофейня | шоколадница |
| 1358 | 650.0 | Москва, Мичуринский проспект, 27, корп. 1 | кафе | lyanson’s coffee |
| 905 | 650.0 | Москва, Мичуринский проспект, 58, корп. 1 | кафе | for your kids |
| 6321 | 650.0 | Москва, Мичуринский проспект, 7, корп. 1 | ресторан | ресторан китайской кухни чуаньюй |
| 7189 | 650.0 | Москва, Мичуринский проспект, 8, стр. 1 | кофейня | университетское |
| 6348 | 660.0 | Москва, Измайловское шоссе, 71, корп. 2Б | бар,паб | ресторан тройка |
| 7341 | 660.0 | Москва, Измайловское шоссе, 71, корп. 2Б | бар,паб | хаус бар |
| 6274 | 675.0 | Москва, улица Маршала Захарова, 6, корп. 1 | ресторан | ресторан |
| 3681 | 760.0 | Москва, улица Юности, 1 | кафе | дом |
| 796 | 920.0 | Москва, Киевская улица, 2 | бар,паб | eataly |
| 6735 | 920.0 | Москва, Киевская улица, 2 | кафе | стейк & бургер |
| 3075 | 1040.0 | Москва, Измайловское шоссе, 71, корп. А | бар,паб | ваня и гоги |
| 5289 | 1040.0 | Москва, Измайловское шоссе, 71, корп. А | быстрое питание | маргарита |
| 5321 | 1040.0 | Москва, Измайловское шоссе, 71, корп. А | кафе | матрешка |
| 8120 | 1040.0 | Москва, Измайловское шоссе, 71, корп. А | кофейня | шоколадница |
| 6236 | 1200.0 | Москва, Кутузовский проспект, 41, стр. 1 | столовая | рестобар argomento |
| 5925 | 1288.0 | Москва, проспект Вернадского, 121, корп. 1 | бар,паб | пивной ресторан |
| 8305 | 1288.0 | Москва, проспект Вернадского, 121, корп. 1 | ресторан | ян примус |
| 8383 | 1288.0 | Москва, проспект Вернадского, 121, корп. 1 | ресторан | японская кухня |
| 81 | 1288.0 | Москва, проспект Вернадского, 41, стр. 1 | кофейня | alternative coffee |
| 8355 | 1288.0 | Москва, проспект Вернадского, 51, стр. 1 | ресторан | яндекс лавка |
| 1333 | 1288.0 | Москва, проспект Вернадского, 84, стр. 1 | кафе | loft-cafe академия |
| 7071 | 1288.0 | Москва, проспект Вернадского, 84, стр. 1 | кафе | точка |
| 1615 | 1288.0 | Москва, проспект Вернадского, 84, стр. 1 | кофейня | one price coffee |
| 707 | 1288.0 | Москва, проспект Вернадского, 94, корп. 1 | ресторан | delonixcafe |
| 3475 | 1288.0 | Москва, проспект Вернадского, 97, корп. 1 | бар,паб | гудбар |
| 5558 | 1288.0 | Москва, проспект Вернадского, 97, корп. 1 | пиццерия | мюнгер |
Часто повторяющиеся аномально высокие цифры посадочных мест коррелируют с адресами - вероятно это фудкорты, либо заведения в крупных бизнес-центрах, рассчитанные на большую единовременную загрузку(обеденное время). Предположим, то заведения с количеством мест от 280 до 400 имеют схожее назначение.
pd.reset_option('display.max_rows', None)
print('Доля заведений в условных фудкортах:', round(len(df.loc[df['seats']>=280].sort_values('seats', ascending=False))*100 / len(df), 2), '%')
Доля заведений в условных фудкортах: 4.11 %
Эти заведения являются специфическими, их немного. Принято решение данные удалить.
#удаление аномалий
df = df.loc[(df['seats']<280) | (df['seats'].isna()==True)]
#количество мест в яндекс лавках
df.loc[df['name']=='яндекс лавка', ['seats']].value_counts()
seats 0.0 4 40.0 4 200.0 2 25.0 2 45.0 2 20.0 2 75.0 2 90.0 1 184.0 1 180.0 1 124.0 1 100.0 1 96.0 1 64.0 1 65.0 1 55.0 1 46.0 1 27.0 1 24.0 1 22.0 1 250.0 1 dtype: int64
Отметим сервис доставки еды Яндекс.Лавка - у сервиса нет своих залов, но на картах присутствует количество мест. Количество мест практически не повторяется, данные не похожи на случайные цифры. Предположительно, это точки при других заведениях. Теоретически, эти места могут быть использованы при покупке еды в Яндекс.Лавке, поэтому оставим данные как есть.
print('Удалено', round((df_full-len(df))*100/df_full, 2), '% данных.')
Удалено 4.13 % данных.
print('Несетевых заведений: ', df.loc[df['chain'] == 0, 'name'].count())
print('Сетей:' , df.loc[df['chain'] == 1, 'name'].nunique())
print('Сетевых заведений: ', df.loc[df['chain']==1, 'name'].count())
Несетевых заведений: 5036 Сетей: 684 Сетевых заведений: 3020
Данные адресов Яндекс.Карт унифицированы: город, улица, номер дома и корпус разделены запятыми. В данном случае, улицу мы можем получить разделив адрес на список и выделив второй элемент.
#добавление столбца улицы
df['street'] = df['address'].str.split(',', expand=True)[1]
df.head()
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | street | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | #кешбэккафе | кафе | Москва, Большая Татарская улица, 11С | Центральный административный округ | пн-пт 09:00–17:00 | 55.740589 | 37.634106 | 4.0 | - | - | NaN | NaN | 0 | NaN | Большая Татарская улица |
| 1 | +39 pizzeria mozzarella bar | пиццерия | Москва, Столярный переулок, 3, корп. 12 | Центральный административный округ | пн-чт 12:00–22:00; пт,сб 12:00–23:00; вс 12:00... | 55.764166 | 37.568816 | 4.8 | - | - | NaN | NaN | 0 | NaN | Столярный переулок |
| 2 | 1 этаж | кафе | Москва, улица Костякова, 6/5 | Северный административный округ | ежедневно, 10:00–23:00 | 55.811759 | 37.572959 | 4.3 | - | - | NaN | NaN | 0 | 40.0 | улица Костякова |
| 3 | 1-я креветочная | кафе | Москва, Мячковский бульвар, 3А | Юго-Восточный административный округ | пн-чт 10:00–21:00; пт,сб 10:00–22:00; вс 10:00... | 55.657956 | 37.751574 | 3.7 | - | - | NaN | NaN | 0 | 0.0 | Мячковский бульвар |
| 4 | 10 идеальных пицц | ресторан | Москва, улица Свободы, 48, стр. 1 | Северо-Западный административный округ | ежедневно, круглосуточно | 55.848528 | 37.454201 | 4.3 | - | - | NaN | NaN | 1 | 110.0 | улица Свободы |
#режим работы
df['is_24_7'] = df['hours'].str.contains('ежедневно, круглосуточно')
df.head()
| name | category | address | district | hours | lat | lng | rating | price | avg_bill | middle_avg_bill | middle_coffee_cup | chain | seats | street | is_24_7 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | #кешбэккафе | кафе | Москва, Большая Татарская улица, 11С | Центральный административный округ | пн-пт 09:00–17:00 | 55.740589 | 37.634106 | 4.0 | - | - | NaN | NaN | 0 | NaN | Большая Татарская улица | False |
| 1 | +39 pizzeria mozzarella bar | пиццерия | Москва, Столярный переулок, 3, корп. 12 | Центральный административный округ | пн-чт 12:00–22:00; пт,сб 12:00–23:00; вс 12:00... | 55.764166 | 37.568816 | 4.8 | - | - | NaN | NaN | 0 | NaN | Столярный переулок | False |
| 2 | 1 этаж | кафе | Москва, улица Костякова, 6/5 | Северный административный округ | ежедневно, 10:00–23:00 | 55.811759 | 37.572959 | 4.3 | - | - | NaN | NaN | 0 | 40.0 | улица Костякова | False |
| 3 | 1-я креветочная | кафе | Москва, Мячковский бульвар, 3А | Юго-Восточный административный округ | пн-чт 10:00–21:00; пт,сб 10:00–22:00; вс 10:00... | 55.657956 | 37.751574 | 3.7 | - | - | NaN | NaN | 0 | 0.0 | Мячковский бульвар | False |
| 4 | 10 идеальных пицц | ресторан | Москва, улица Свободы, 48, стр. 1 | Северо-Западный административный округ | ежедневно, круглосуточно | 55.848528 | 37.454201 | 4.3 | - | - | NaN | NaN | 1 | 110.0 | улица Свободы | True |
#проверка других возможных написаний времени, указывающих на работу 24/7
print('пн-вс:', len(df.query('hours.str.contains("пн-вс") == True')))
print('00:00–24:00:', len(df.query('hours.str.contains("00:00–24:00") == True')))
print('00:01–24:00:', len(df.query('hours.str.contains("00:01–24:00") == True')))
пн-вс: 0 00:00–24:00: 0 00:01–24:00: 0
других обозначений ежедневоной круглосуточной работы не выявлено.
df.describe().round(2)
| lat | lng | rating | middle_avg_bill | middle_coffee_cup | chain | seats | |
|---|---|---|---|---|---|---|---|
| count | 8056.00 | 8056.00 | 8056.00 | 2988.00 | 513.00 | 8056.00 | 4445.00 |
| mean | 55.75 | 37.61 | 4.23 | 933.53 | 172.69 | 0.37 | 83.32 |
| std | 0.07 | 0.10 | 0.47 | 784.75 | 65.66 | 0.48 | 64.13 |
| min | 55.57 | 37.36 | 1.00 | 30.00 | 60.00 | 0.00 | 0.00 |
| 25% | 55.70 | 37.54 | 4.10 | 375.00 | 125.00 | 0.00 | 40.00 |
| 50% | 55.75 | 37.61 | 4.30 | 700.00 | 169.00 | 0.00 | 68.00 |
| 75% | 55.80 | 37.67 | 4.40 | 1250.00 | 225.00 | 1.00 | 114.00 |
| max | 55.93 | 37.87 | 5.00 | 10000.00 | 375.00 | 1.00 | 276.00 |
В ходе предобработки:
Большое количество отсутствующих данных о режиме работы, категории цены и среднем чеке обусловлено незаполненностью профилей большого количества заведений.
Итого после преобработки данные включают:
По указанным данным:
#Растпределение заведений по категориям
df_cat = df.groupby('category')['name'].count().sort_values(ascending=False).reset_index()
df_cat.rename(columns = {'name':'count'}, inplace = True)
df_cat['part'] = (df_cat['count'] / df_cat['count'].sum()).round(2)
print(df_cat)
fig = go.Figure()
fig.add_trace(go.Bar(x = df_cat['category'], y = df_cat['count'], name = 'Среднее значение', text=df_cat['count']))
fig.update_traces(text=df_cat['count'], selector=dict(type='bar'))
fig.update_layout(
title="Количество заведений по категориям",
xaxis_title="Категория",
yaxis_title="Количество заведений",
barmode='overlay',
height=600,
width=800)
fig.update_traces(hoverinfo="none", selector=dict(type='bar'))
fig.show()
category count part 0 кафе 2305 0.29 1 ресторан 1934 0.24 2 кофейня 1351 0.17 3 бар,паб 717 0.09 4 пиццерия 612 0.08 5 быстрое питание 582 0.07 6 столовая 306 0.04 7 булочная 249 0.03
Больше половины всех заведений составляют топ-3 категорий:
#медианный средний чек по категориям:
df_cat_avg_bill = df.groupby('category')['middle_avg_bill'].median().round(2).sort_values(ascending=False).reset_index()
df_cat_avg_bill
| category | middle_avg_bill | |
|---|---|---|
| 0 | бар,паб | 1250.0 |
| 1 | ресторан | 1250.0 |
| 2 | пиццерия | 600.0 |
| 3 | кафе | 550.0 |
| 4 | булочная | 435.0 |
| 5 | кофейня | 400.0 |
| 6 | быстрое питание | 375.0 |
| 7 | столовая | 300.0 |
Данные показали, что медианный средний чек:
Суммы кореллируют со стоимостью заказа на 1 человека: блюдо(десерт) + напиток или 2-3х напитков в баре; комплексного обеда для столовых. Большинство бюдей платят сами за себя, даже если приходят не одни.
#Количество посадочных мест по категориям
df_seats_cat = df.groupby('category').agg({'seats':['min', 'mean', 'median']}).droplevel(level=0, axis=1).reset_index().sort_values('median', ascending=False).round(2)
df_seats_cat
| category | min | mean | median | |
|---|---|---|---|---|
| 6 | ресторан | 0.0 | 94.42 | 80.0 |
| 0 | бар,паб | 0.0 | 87.67 | 76.0 |
| 7 | столовая | 0.0 | 78.55 | 70.0 |
| 4 | кофейня | 0.0 | 83.12 | 69.0 |
| 2 | быстрое питание | 0.0 | 81.16 | 60.0 |
| 3 | кафе | 0.0 | 75.14 | 53.0 |
| 5 | пиццерия | 0.0 | 76.84 | 50.0 |
| 1 | булочная | 0.0 | 75.15 | 48.0 |
#количество мест по категориям заведений
fig = go.Figure()
fig.add_trace(go.Bar(x = df_seats_cat['category'], y = df_seats_cat['mean'], name = 'Среднее значение', opacity=0.4, text=df_seats_cat['mean']))
fig.update_traces(text=df_seats_cat['mean'], selector=dict(type='bar'))
fig.add_trace(go.Bar(x = df_seats_cat['category'], y = df_seats_cat['median'], name = 'Медиана', text=df_seats_cat['median'],))
fig.update_layout(
title="Количество посадочных мест по категориям заведений ",
xaxis_title="Категория",
yaxis_title="Количество мест",
barmode='overlay',
height=600,
width=800)
fig.update_traces(hoverinfo="none", selector=dict(type='bar'))
fig.show()
Топ-3 по наибольшему типичному количество мест:
Заведения с большим количеством посадочных мест встречаются во всех категориях, т.к. среднее превышает медиану. Однако, в основной своей массе с большим количеством посадосных мест:
Чаще небольшие:
Самые крупные - рестораны. Предположительно, это связано с тем, что люди проводят в ресторанах и барах больше времени, чем в других заведениях. Часто рестораны становятся площадкой для массовых торжеств.
Столовые и бары рассчитаны на большую загрузку в несколько пиковых часов в сутки.
В булочные часто заходят просто чтобы купить изделия на вынос, следовательно, большие площади булочных не нужны.
#переименование параметра chain для более понятного вывода на графиках
df_chain = df
df_chain.loc[df_chain['chain'] == 0, 'chain'] = 'Несетевое заведение'
df_chain.loc[df_chain['chain'] == 1, 'chain'] = 'Сетевое заведение'
#соотношени сетевых и несетевых заведений
df_chain_group = df.groupby('chain')['name'].count().reset_index()
df_chain_group = df_chain_group.rename(columns={'name':'count'})
print(df_chain_group)
layout = go.Layout(
autosize=False,
width=600,
height=600)
fig = go.Figure(data=[go.Pie(labels=df_chain_group['chain'], values=df_chain_group['count'])], layout=layout)
fig.update_traces(text=df_chain_group['count'], selector=dict(type='pie'), textfont_size=14)
fig.update_traces(hovertext=df_chain_group['chain'], selector=dict(type='pie'))
fig.update_traces(hoverinfo='text', selector=dict(type='pie'))
fig.show()
chain count 0 Несетевое заведение 5036 1 Сетевое заведение 3020
Практически треть заведений - несетевые. Можно сделать вывод, что несетевые заведения успешно находят потребителей.
#агрегация данных для сортировки диаграммы
df_chain_sum = df_chain.groupby('category')['name'].count().reset_index().sort_values(by='name', ascending=False)
print(df_chain_sum)
fig = px.histogram(df_chain,
x='category',
color='chain',
title='Распределение заведений по категориям',
category_orders={'category': df_chain_sum['category']},
width=800)
fig.update_xaxes(title_text='Категория') # подпись для оси X
fig.update_yaxes(title_text='Количество заведений') # подпись для оси Y
fig.update_traces(selector=dict(type='histogram'))
fig.show() # выводим график
category name 3 кафе 2305 6 ресторан 1934 4 кофейня 1351 0 бар,паб 717 5 пиццерия 612 2 быстрое питание 582 7 столовая 306 1 булочная 249
Это означает, что конкуренция со стороны сетей для категорий из пункта 1 выражена в меньшей степени.
Несмотря на всем известные сети быстрого питания, всего треть заведений является сетевыми. Вероятно это связано с большим количеством единичных no-name шаурм, хачапурных и т.п.
Развить несевую булочную будет достаточно сложно. Это может быть связано с тем, что для булочных наиболее выражен локальный спрос. Также средний чек булочной очевидно самый низкий среди всех категорий. Поэтому, для увеличения охвата необходимо открывать несколько заведений.
#15 крупнейших заведений
df_popular_chains = df_chain.loc[df_chain['chain'] == 'Сетевое заведение'].groupby('name').agg({'category':pd.Series.mode, 'name':'count'})
df_popular_chains = df_popular_chains.rename({'name':'count'}, axis=1)
df_popular_chains = df_popular_chains.sort_values('count', ascending=False).reset_index().head(15)
df_popular_chains
| name | category | count | |
|---|---|---|---|
| 0 | шоколадница | кофейня | 113 |
| 1 | домино'с пицца | пиццерия | 77 |
| 2 | додо пицца | пиццерия | 71 |
| 3 | one price coffee | кофейня | 67 |
| 4 | яндекс лавка | ресторан | 66 |
| 5 | cofix | кофейня | 62 |
| 6 | prime | ресторан | 47 |
| 7 | хинкальная | кафе | 44 |
| 8 | кофепорт | кофейня | 40 |
| 9 | кулинарная лавка братьев караваевых | кафе | 38 |
| 10 | теремок | ресторан | 36 |
| 11 | чайхана | кафе | 35 |
| 12 | буханка | булочная | 32 |
| 13 | cofefest | кофейня | 31 |
| 14 | drive café | кафе | 24 |
fig = px.bar(df_popular_chains,
y='count',
x='name',
color='category',
category_orders={'name': df_popular_chains['name']},
title='Количество заведений в популярных сетях',
height=600,
width=800,
text=df_popular_chains['count'])
fig.update_xaxes(title_text='Название сети')
fig.update_yaxes(title_text='Количество заведений')
fig.show()
Среди топ-5 по количеству заведенйи в сети:
Основную массу топ-15 составляют кофейни и кафе. В топ-15 входит всего одна булочная, несмотря на большой % сетевых заведений в категории.
Отсутствуют в рейтинге:
– в этих категориях нет крупных сетей.
Кофейни и пиццерии, как правило, небольшие, с низким средним чеком. Предположительно спрос для таких заведений узко локализирован и масштабирование возможно только за счет открытия новых точек. Эту теорию подтверждает половина сетевых заведений в этих категориях.
Отсутствие в рейтинге баров и пабов может быть связано с распространением авторских заведений. Столовых - локализация в бизнес-центре, кампусе, заводе и тд. - у них стабильный спрос и отсутствие конкурентов шаговой доступности и нет необходимости в создании собственного бренда.
df_dist = df.groupby(['district', 'category']).agg({'name':'count'})
df_dist = df_dist.rename({'name':'count'}, axis=1).sort_values(['district', 'count'], ascending=False).reset_index()
#агрегация данных для сортировки диаграммы
df_dist_sum = df_dist.groupby('district')['count'].sum().reset_index().sort_values(by='count', ascending=False)
df_dist_sum
| district | count | |
|---|---|---|
| 5 | Центральный административный округ | 2123 |
| 3 | Северо-Восточный административный округ | 867 |
| 2 | Северный административный округ | 853 |
| 8 | Южный административный округ | 828 |
| 1 | Западный административный округ | 790 |
| 0 | Восточный административный округ | 782 |
| 6 | Юго-Восточный административный округ | 708 |
| 7 | Юго-Западный административный округ | 700 |
| 4 | Северо-Западный административный округ | 405 |
fig = px.bar(df_dist,
y='count',
x='district',
color='category',
title='Количество заведений в АО',
category_orders={'district': df_dist_sum['district']},
height=800,
width=1000 )
fig.update_xaxes(title_text='Округ')
fig.update_yaxes(title_text='Количество заведений')
fig.show()
Распределение заведений различных категорий по округам демострирует топ-3:
на которые приходится большая часть всех заведений, что соответствует распределению по Москве в целом.
Исключение составляет Центральный округ, где большую часть также составляют бары и пабы. Это связано с высокой концентранцией туристического потока и деловых кварталов.
category_rate = df.groupby('category').agg({'rating':'median'}).sort_values('rating', ascending=False)
category_rate.reset_index(inplace=True)
category_rate
| category | rating | |
|---|---|---|
| 0 | бар,паб | 4.4 |
| 1 | булочная | 4.3 |
| 2 | кофейня | 4.3 |
| 3 | пиццерия | 4.3 |
| 4 | ресторан | 4.3 |
| 5 | столовая | 4.3 |
| 6 | быстрое питание | 4.2 |
| 7 | кафе | 4.2 |
fig = px.bar(category_rate,
x='category',
y='rating',
title='Средний рейтинг заведений каждой категории',
text = category_rate['rating'],
width=800)
fig.update_yaxes(title_text='Рейтинг')
fig.update_xaxes(title_text='Категория')
fig.update_yaxes(range=[0, 5])
fig.show()
Максимальный средний рейтинг у пабов и баров, минимальнй у кафе, однако диапазон всего 0,2.
Более низкий рейтинг кафе и быстрого питания может быть связан с назначением заведений - это места, куда люди ходят в обеденный перерыв при необходимости поесть. Для оценки таких заведений очень много факторов: свежесть и разнообразие блюд, цена, скорость обслуживания и пр. В бары и пабы ходят отдыхать, поэтому менее требовательны к меню.
district_rate = df.groupby('district').agg({'rating':'median'}).sort_values('rating', ascending=False)
district_rate.reset_index(inplace=True)
district_rate
| district | rating | |
|---|---|---|
| 0 | Центральный административный округ | 4.4 |
| 1 | Восточный административный округ | 4.3 |
| 2 | Западный административный округ | 4.3 |
| 3 | Северный административный округ | 4.3 |
| 4 | Северо-Западный административный округ | 4.3 |
| 5 | Юго-Западный административный округ | 4.3 |
| 6 | Южный административный округ | 4.3 |
| 7 | Северо-Восточный административный округ | 4.2 |
| 8 | Юго-Восточный административный округ | 4.2 |
with open('admin_level_geomap.geojson', encoding='utf-8') as file:
file = json.load(file)
state_geo = file
# moscow_lat - широта центра Москвы, moscow_lng - долгота центра Москвы
moscow_lat, moscow_lng = 55.751244, 37.618423
# создаём карту Москвы
m = Map(location=[moscow_lat, moscow_lng], zoom_start=10)
# создаём хороплет с помощью конструктора Choropleth и добавляем его на карту
Choropleth(
geo_data=state_geo,
data=district_rate,
columns=['district', 'rating'],
key_on='feature.name',
fill_color='YlGn',
fill_opacity=0.8,
legend_name='Медианный рейтинг заведений',
).add_to(m)
# выводим карту
m
Разброс рейтинга заведений по районам так же не превышает 0.2: от 4,2 в Юго- и Северо-Восточном округах до 4.4 в Центральном.
Это означает, что в Центральном районе необходимо соответствовать более высоким стандартам.
# moscow_lat - широта центра Москвы, moscow_lng - долгота центра Москвы
moscow_lat, moscow_lng = 55.751244, 37.618423
# создаём карту Москвы
m = Map(location=[moscow_lat, moscow_lng], zoom_start=10)
# создаём пустой кластер, добавляем его на карту
marker_cluster = MarkerCluster().add_to(m)
# пишем функцию, которая принимает строку датафрейма,
# создаёт маркер в текущей точке и добавляет его в кластер marker_cluster
def create_clusters(row):
Marker(
[row['lat'], row['lng']],
popup=f"{row['name']} {row['rating']}",
).add_to(marker_cluster)
# применяем функцию create_clusters() к каждой строке датафрейма
df.apply(create_clusters, axis=1)
# выводим карту
m
Необходимость соответствия более высоким стандартам в Центральном округе подтверждается высокой конкуренцией - в центре самое большое сосредоточение заведений.
top_streets = df.groupby('street').agg({'name':'count'}).sort_values('name', ascending=False).head(15) #поиск топ-15 улиц
df_top_streets = df.loc[df['street'].isin(top_streets.index.to_list())] #фильтрация датафрейма по нужным улицам
#агрегация данных
df_top_streets_ag = df_top_streets.groupby(['street', 'category']).agg({'name':'count'})
df_top_streets_ag = df_top_streets_ag.rename({'name':'count'}, axis=1).reset_index()
top_streets
| name | |
|---|---|
| street | |
| проспект Мира | 182 |
| Профсоюзная улица | 122 |
| проспект Вернадского | 97 |
| Ленинский проспект | 92 |
| Ленинградский проспект | 72 |
| Варшавское шоссе | 71 |
| Дмитровское шоссе | 70 |
| Ленинградское шоссе | 69 |
| Каширское шоссе | 66 |
| МКАД | 65 |
| Люблинская улица | 60 |
| Кутузовский проспект | 53 |
| улица Миклухо-Маклая | 47 |
| Алтуфьевское шоссе | 44 |
| Волгоградский проспект | 42 |
#агрегация данных для сортировки диаграммы
df_top_streets_ag_sum = df_top_streets_ag.groupby('street')['count'].sum().reset_index().sort_values('count', ascending=False)
#график распределения заведений по улицам
fig = px.bar(df_top_streets_ag,
y='count',
x='street',
color='category',
title='Заведения на популярных улицах',
category_orders={'street': df_top_streets_ag_sum['street']},
height=800,
width=1000)
fig.update_xaxes(title_text='Улица')
fig.update_yaxes(title_text='Количество заведений')
fig.show()
Больше всего заведений расположено на:
Все улицы, за исключением ул. Миклухо-Маклая явяются длинными транспортными магистралями на пути от центра к спальным районам и расположены между Садовым кольцом и МКАД.
На большинстве улиц основную массу заведений, примерно в равных пропорциях, составляют:
Кроме МКАД - где доля кафе значительно выше остальных заведений.
#улицы только с одним заведением
one_place_street = df.groupby('street').agg({'name':'count'}).sort_values('name', ascending=False).query('name ==1')
df_one_place_street = df.loc[df['street'].isin(one_place_street.index.to_list())]
df_one_place_street.describe().round(2)
| lat | lng | rating | middle_avg_bill | middle_coffee_cup | seats | |
|---|---|---|---|---|---|---|
| count | 464.00 | 464.00 | 464.00 | 167.00 | 24.00 | 157.00 |
| mean | 55.76 | 37.62 | 4.24 | 961.51 | 186.17 | 58.87 |
| std | 0.06 | 0.09 | 0.46 | 994.57 | 55.54 | 48.22 |
| min | 55.58 | 37.39 | 1.00 | 67.00 | 95.00 | 0.00 |
| 25% | 55.73 | 37.56 | 4.10 | 325.00 | 140.00 | 30.00 |
| 50% | 55.76 | 37.61 | 4.30 | 650.00 | 177.50 | 45.00 |
| 75% | 55.80 | 37.67 | 4.50 | 1250.00 | 213.75 | 80.00 |
| max | 55.91 | 37.87 | 5.00 | 7000.00 | 320.00 | 240.00 |
Среди единственных заведений на улице:
Типичный средний чек немного ниже, а заведения на меньшее количество мест, чем в общен по Москве. Стоимость же чашки кофе превышает медиану по всем заведениям.
ops_category = df_one_place_street.groupby('category')['name'].agg('count').reset_index()
layout = go.Layout(
autosize=False,
width=600,
height=600)
fig = go.Figure(data=[go.Pie(labels=ops_category['category'], values=ops_category['name'])], layout=layout)
fig.update_traces(text=ops_category['name'], selector=dict(type='pie'),
textfont_size=14)
fig.update_traces(hovertext=ops_category['category'], selector=dict(type='pie'))
fig.update_traces(hoverinfo='text', selector=dict(type='pie'))
fig.show()
Больше трети единственных заведений на улице - это кафе, ещё 40% делят рестораны и кафе.
ops_district = df_one_place_street.groupby('district')['name'].agg('count').reset_index()
layout = go.Layout(
autosize=False,
width=800,
height=800)
fig = go.Figure(data=[go.Pie(labels=ops_district['district'], values=ops_district['name'])], layout=layout)
fig.update_traces(text=ops_district['name'], selector=dict(type='pie'),
textfont_size=14)
fig.update_traces(hovertext=ops_district['district'], selector=dict(type='pie'))
fig.update_traces(hoverinfo='text', selector=dict(type='pie'))
fig.show()
31% улиц с единственными заведениями засположены в Центральном АО - скорее всего в центре сосредоточено большое количество небольших улиц. Ещё 35% в равных долях приходится на Северо-Восточный, Восточный и Северный АО.
district_avg_bill = df.groupby('district')['middle_avg_bill'].median().reset_index().sort_values('middle_avg_bill', ascending=False)
print(district_avg_bill)
fig = px.bar(district_avg_bill,
x='district',
y='middle_avg_bill',
title='Средний чек в разных районах',
height=600,
width=800,
text=district_avg_bill['middle_avg_bill'],
)
fig.update_yaxes(title_text='Средний чек, pуб.')
fig.update_xaxes(title_text='Округ')
fig.show()
district middle_avg_bill 5 Центральный административный округ 1000.0 1 Западный административный округ 950.0 4 Северо-Западный административный округ 687.5 2 Северный административный округ 650.0 7 Юго-Западный административный округ 600.0 0 Восточный административный округ 550.0 3 Северо-Восточный административный округ 500.0 8 Южный административный округ 500.0 6 Юго-Восточный административный округ 444.5
with open('admin_level_geomap.geojson', encoding='utf-8') as file:
file = json.load(file)
state_geo = file
# moscow_lat - широта центра Москвы, moscow_lng - долгота центра Москвы
moscow_lat, moscow_lng = 55.751244, 37.618423
# создаём карту Москвы
m = Map(location=[moscow_lat, moscow_lng], zoom_start=10)
# создаём хороплет с помощью конструктора Choropleth и добавляем его на карту
Choropleth(
geo_data=state_geo,
data=district_avg_bill,
columns=['district', 'middle_avg_bill'],
key_on='feature.name',
fill_color='YlGn',
fill_opacity=0.8,
legend_name='Медианный средний чек',
).add_to(m)
# выводим карту
m
Лидером по среднему чеку являются Центральный и Западный округа: 1000р. и 950р.
Ниже 500р. средние чеки в:
Для того, чтобы оченить причины такого распределения, необходимо распологать данными о благосостоянии людей, проживающих, либо работающих в этих районах.
Очевидно, что в Центре расположена наиболее платёжеспособная местная публика, и много туристов. Западный округ считается элитным, на его территории расположены институты и инострнаные посольства. Очевидно, что благосостояние проживающих там людей выше.
Обзор категорий
Больше половины всех заведений составляют 3 категории:
Медианный средний чек:
По количеству посадочных мест самые крупные - рестораны. Предположительно, это связано с тем, что люди проводят в ресторанах и барах больше времени, чем в других заведениях. Часто рестораны становятся площадкой для крупных торжеств.
Столовые и бары рассчитаны на большую загрузку в несколько пиковых часов в сутки.
В булочные часто заходят просто чтобы купить изделия на вынос, следовательно, большие площади булочных не нужны.
Типичное количество посадочных мест в:
Чаще небольшие:
Обзор сетей
Практически треть заведений - несетевые. Можно сделать вывод, что несетевые заведения успешно находят потребителей.
Преобладают несетевые заведения среди:
Практически равные доли сетей и единичных заведений в категориях:
Преобладают сетевые заведения в категории булочные.
Это означает, что конкуренция со стороны сетей для категорий из пункта 1 выражена в меньшей степени. Открыть и развить несетевую булочную, скорее всего, будет достаточно сложно.
Основную массу топ-15 самых крупных сетей составляют кофейни и кафе.
Самая крупная сеть - кофейни Шоколадница. Далее 2 пиццерии: Домино'с и Додо.
Кофейни и пиццерии, как правило, небольшие, со средним чеком порядка 700р. Предположительно спрос для таких заведений узко локализирован и масштабирование возможно только за счет открытия новых точек. Эту теорию подтверждает половина сетевых заведений в этих категориях.
В топ-15 сетей по величине входит всего одна булочная, несмотря на большой % сетевых заведений в категории.
Отсутствуют в рейтинге:
– в этих категориях нет крупных сетей.
Обзор заведений по округам
Распределение заведений различных категорий по округам совпадает с распределением по Москве. Топ-3:
Исключение составляет Центральный округ, где большую часть также составляют бары и пабы. Это связано с высокой концентранцией туристического потока и деловых кварталов.
Максимальный средний рейтинг у пабов и баров, минимальнй у кафе, однако диапазон всего 0,2.
Более низкие оценки у кафе: небольших заведений с невысоким средним чеком. Однако, в оценке таких заведений очень много факторов: свежесть и разнообразие блюд, цена, скорость обслуживания и пр.
Разброс рейтинга заведений по районам так же не превышает 0.2: от 4,2 в Юго- и Северо-Восточном округах до 4.4 в Центральном.
В Центральном округе необходимо соответствовать более высоким стандартам, в том числе и в связи с повышенной конкуренцией.
Улицы с самым большим количеством заведений
Больше всего заведений расположено на:
Все улицы, за исключением ул. Миклухо-Маклая явяются транспортными магистралями на пути от центра к спальным районам и расположены между Садовым кольцом и МКАД.
На большинстве улиц основную массу заведений, примерно в равных пропорциях, составляют:
Кроме МКАД - где доля кафе значительно выше остальных заведений.
Улицы с единственным заведением
Среди единственных заведений на улице:
Типичный средний чек немного ниже, а заведения на меньшее количество мест, чем в общен по Москве. Стоимость же чашки кофе превышает медиану по всем заведениям.
Больше трети единственных заведений на улице - это кафе, ещё 40% делят рестораны и кофейни.
31% улиц с единственными заведениями засположены в Центральном АО - скорее всего в центре сосредоточено большое количество небольших улиц. Ещё 35% в равных долях приходится на Северо-Восточный, Восточный и Северный АО.
Обзор цен по округам
Лидером по среднему чеку являются Центральный и Западный округа: 1000р. и 950р.
Ниже 500р. средние чеки в:
Очевидно, что в Центре расположена наиболее платёжеспособная местная публика, и много туристов. Западный округ считается элитным, на его территории расположены институты и инострнаные посольства. Очевидно, что благосостояние проживающих там людей выше.
df_cafe = df[df['category']=='кофейня']
print('Всего кофеен: ', len(df_cafe))
Всего кофеен: 1351
district_cafe = df_cafe.groupby('district')['name'].count().sort_values(ascending=False).reset_index()
district_cafe = district_cafe.rename({'name':'count'}, axis=1)
district_cafe
| district | count | |
|---|---|---|
| 0 | Центральный административный округ | 406 |
| 1 | Северный административный округ | 184 |
| 2 | Северо-Восточный административный округ | 156 |
| 3 | Западный административный округ | 140 |
| 4 | Южный административный округ | 117 |
| 5 | Восточный административный округ | 104 |
| 6 | Юго-Западный административный округ | 94 |
| 7 | Юго-Восточный административный округ | 88 |
| 8 | Северо-Западный административный округ | 62 |
fig = px.bar(district_cafe,
x='district',
y='count',
title='Количество кофеен по округам',
width=1000,
height=600,
text=district_cafe['count'])
fig.update_yaxes(title_text='Количество заведений')
fig.update_xaxes(title_text='Округ')
fig.show()
По количеству кофеен с большим отрывом лидирует Центральный АО. Меньше всего - в Северо-Западном.
cafe24_7 = df_cafe.groupby('is_24_7')['name'].count().reset_index()
cafe24_7.loc[cafe24_7['is_24_7']==False, 'is_24_7'] = 'Кофейни с перерывами'
cafe24_7.loc[cafe24_7['is_24_7']==True, 'is_24_7'] = 'Круглосуточные кофейни'
cafe24_7 = cafe24_7.rename({'name':'count'}, axis=1)
cafe24_7
| is_24_7 | count | |
|---|---|---|
| 0 | Кофейни с перерывами | 1293 |
| 1 | Круглосуточные кофейни | 58 |
layout = go.Layout(
autosize=False,
width=600,
height=600)
fig = go.Figure(data=[go.Pie(labels=cafe24_7['is_24_7'], values=cafe24_7['count'])], layout=layout)
fig.update_traces(textfont_size=14)
fig.show()
Круглосуточных кофеен менее 5% от общего количества.
district_cafe = df.groupby('district').agg({'rating':'median'}).sort_values('rating', ascending=False)
district_cafe.reset_index(inplace=True)
district_cafe
| district | rating | |
|---|---|---|
| 0 | Центральный административный округ | 4.4 |
| 1 | Восточный административный округ | 4.3 |
| 2 | Западный административный округ | 4.3 |
| 3 | Северный административный округ | 4.3 |
| 4 | Северо-Западный административный округ | 4.3 |
| 5 | Юго-Западный административный округ | 4.3 |
| 6 | Южный административный округ | 4.3 |
| 7 | Северо-Восточный административный округ | 4.2 |
| 8 | Юго-Восточный административный округ | 4.2 |
fig = px.bar(district_cafe,
x='district',
y='rating',
title='Средний рейтинг кофеен в округе',
width= 800,
height=600,
text=district_cafe['rating'])
fig.update_yaxes(title_text='Рейтинг')
fig.update_xaxes(title_text='Округ')
fig.update_yaxes(range=[0, 5])
fig.show()
with open('admin_level_geomap.geojson', encoding='utf-8') as file:
file = json.load(file)
state_geo = file
# moscow_lat - широта центра Москвы, moscow_lng - долгота центра Москвы
moscow_lat, moscow_lng = 55.751244, 37.618423
# создаём карту Москвы
m = Map(location=[moscow_lat, moscow_lng], zoom_start=10)
# создаём хороплет с помощью конструктора Choropleth и добавляем его на карту
Choropleth(
geo_data=state_geo,
data=district_cafe,
columns=['district', 'rating'],
key_on='feature.name',
fill_color='YlGn',
fill_opacity=0.8,
legend_name='Медианный рейтинг кофеен',
).add_to(m)
# выводим карту
m
Средний рейтинг кофеен не отличается от данных по всем заведениям: наибольший - в Центральном округе, наименьший - в Северо-и Юго-Восточных округах.
Конкуренция и стандарты в ЦЕнтральном районе выше остальных.
cafe_avg_cup = df_cafe.groupby('district')['middle_coffee_cup'].median().sort_values(ascending=False).reset_index()
fig = px.bar(cafe_avg_cup,
x='district',
y='middle_coffee_cup',
title='Средняя стоимость чашки кофе в разных районах',
height = 600,
width= 800,
text=cafe_avg_cup['middle_coffee_cup'])
fig.update_yaxes(title_text='Средняя стоимость чашки кофе, pуб.')
fig.update_xaxes(title_text='Округ')
fig.show()
with open('admin_level_geomap.geojson', encoding='utf-8') as file:
file = json.load(file)
state_geo = file
# moscow_lat - широта центра Москвы, moscow_lng - долгота центра Москвы
moscow_lat, moscow_lng = 55.751244, 37.618423
# создаём карту Москвы
m = Map(location=[moscow_lat, moscow_lng], zoom_start=10)
# создаём хороплет с помощью конструктора Choropleth и добавляем его на карту
Choropleth(
geo_data=state_geo,
data=cafe_avg_cup,
columns=['district', 'middle_coffee_cup'],
key_on='feature.name',
fill_color='YlGn',
fill_opacity=0.8,
legend_name='Медианная цена чашки кофе',
).add_to(m)
# выводим карту
m
Распределение средней цены чашки кофе по районам отличается от среднего чека ресторанов и кафе:
Типичная кофейня это заведение:
С точки зрения открытия кофейни в первую очередь следует рассмотреть Юго-Западный округ. Причины:
Это означает невысокую конкуренцию и возможность большей выгоды в этом округе.
Через Юго-Западный округ проходят 2 улицы с наибольшим количеством заведений: Профсоюзная улица и Ленинский проспект на границе с Западным округом - очевидно, что это улицы с большим потоком людей.
Однако, есть вероятность, что небольшое количество кофеен в этом районе обусловлено невостребованностью такого формата заведений.
Альтернативный вариант: Центральный район или Западный районы. Там также можно рассчитывать на более обеспеченных посетителей, однако, в Центральном районе конкуренция будет выше. В Западном - можно также столкнуться с невостребованностью формата.
На основе предоставленных данных проведён анализ информации о 8056 заведениях, среди них: Итого после преобработки данные включают:
Для порядка половины данных отсутствует информация о:
Информация о режиме работы отсутствует для 1/8 части заведений.
По указанным данным:
В ходе анализа данных были исследованы:
Также отдельно рассмострены кофейни на предмет перспективы открытия нового заведения.
1. Распределение заведений по категориям.
Больше половины всех заведений составляют 3 категории:
Медианный средний чек:
2. Количество посадочных мест.
По количеству посадочных мест самые крупные - рестораны, где визит длится, как правило, не менее часа. Часто рестораны становятся площадкой для крупных торжеств.
Столовые и бары рассчитаны на большую загрузку в несколько пиковых часов в сутки.
В булочных, где в большинстве случаев просто покупают хлеб на вынос, а количество посетителей наиболее ограничено близостью проживания людей, нет необходимости в большом количестве мест.
Типичное количество посадочных мест в:
Чаще небольшие:
3. Типичные сетевые и несетевые заведения.
Из общего количества заведений Москвы 62% составляют несетевые заведения.
Меньше всего сетей среди:
Сети включают половину:
Преобладают сети только в булочных.
Кофейни и пиццерии, как правило, небольшие, с низким средним чеком. Предположительно спрос для таких заведений узко локализирован и масштабирование возможно только за счет открытия новых точек. Эти же выводы применимы к булочным.
Это подтверждается категориями заведений самых крупных сетей: кофейни "Шоколадница" и 2 пиццерии: "Домино'с" и "Додо". В топ-15 сетей по количеству заведений, помимо "Шоколандницы" входит ещё 4 сети кофеен. Итого по категориям топ состоит из:
Кофейни и пиццерии, как правило, небольшие, с низким средним чеком. Предположительно спрос для таких заведений узко локализирован и масштабирование возможно только за счет открытия новых точек. Эту теорию подтверждает половина сетевых заведений в этих категориях.
4. Рейтинги.
Средний рейтинг заведений практически не меняется ни в зависимости от округа, ни в зависимости от категории. Разброс составляет от 4.2 до 4.4.
Средний рейтинг округам:
Высокие рейтинги в Центральном округе могут быть связаны с повышенной конкуренцией среди заведений.
Средний рейтинг по категориям:
Предположительно посетители более требовательны к повседневной еде, нежели к отдыху в барах и пабах.
5. География заведений.
Распределение заведений различных категорий по округам совпадает с распределением по Москве: 2/3 заведений составляют топ-3 категорий:
Исключение составляет Центральный округ, где большую часть также составляют бары и пабы. Это связано с высокой концентранцией туристического потока и деловых кварталов.
Топ-15 улиц по количеству заведений составляют длинные "транспортные магистрали" на пути от центра к спальным районам и расположены между Садовым кольцом и МКАД. Исключение - ул. Миклухо-Маклая.
Больше всего заведений расположено на:
На этих улицах основную массу заведений, примерно в равных пропорциях, составляют:
Кроме МКАД - где доля кафе значительно выше остальных заведений.
На "непопулярных" среди заведений улицах:
Больше трети единственных заведений на улице - это кафе, ещё 40% делят рестораны и кофейни.
31% улиц с единственными заведениями засположены в Центральном АО - скорее всего в центре сосредоточено большое количество небольших улиц.
Ещё 35% в равных долях приходится на Северо-Восточный, Восточный и Северный АО.
6. Цены в округах.
Лидером по среднему чеку являются Центральный и Западный округа: 1000р. и 950р.
Ниже 500р. средние чеки в:
Очевидно, что в Центре расположена наиболее платёжеспособная местная публика, и много туристов.
Западный округ считается элитным, очевидно, что благосостояние проживающих там людей выше. Следовательно - выше средний чек.
Типичная кофейня это заведение:
С точки зрения открытия кофейни в первую очередь следует рассмотреть Юго-Западный округ. Причины:
Эти факторы обуслаливают потенциальную невысокую конкуренцию и возможность большей выгоды в этом округе.
Однако, есть вероятность, что небольшое количество кофеен в этом районе обусловлено невостребованностью такого формата заведений.
Альтернативный вариант: Центральный район или Западный районы. Там также можно рассчитывать на более обеспеченных посетителей, однако, в Центральном районе конкуренция будет выше. В Западном - можно также столкнуться с невостребованностью формата.
В случае центрального округа стоит обраить внимание на улицы с небольшим колиеством заведений. Кофейня чаще заведений других категорий оказывается единственным местом общепита на улице, при этом средняя стоимость чашки кофе на такой улице выше.